159 fprintf(stderr, "Usage: %s command [options] arguments...\n\n", cmd); |
159 fprintf(stderr, "Usage: %s command [options] arguments...\n\n", cmd); |
160 fprintf(stderr, "Commands:\n"); |
160 fprintf(stderr, "Commands:\n"); |
161 fprintf(stderr, " list [-altdepcR] [-u <date>] <url>\n"); |
161 fprintf(stderr, " list [-altdepcR] [-u <date>] <url>\n"); |
162 fprintf( |
162 fprintf( |
163 stderr, |
163 stderr, |
164 " get [-pcR] [-o <file>] [-u <date>] <url>\n"); |
164 " get [-pcRK] [-o <file>] [-u <date>] <url>\n"); |
165 fprintf(stderr, " put [-pcR] [-k <key>] [-L <lock>] <url> <file>\n"); |
165 fprintf(stderr, " put [-pcR] [-k <key>] [-L <lock>] <url> <file>\n"); |
166 fprintf(stderr, " mkdir [-pc] [-k <key>] [-L <lock>] <url>\n"); |
166 fprintf(stderr, " mkdir [-pc] [-k <key>] [-L <lock>] <url>\n"); |
167 fprintf(stderr, " remove [-pc] [-L <lock>] <url>\n"); |
167 fprintf(stderr, " remove [-pc] [-L <lock>] <url>\n"); |
168 fprintf(stderr, " copy [-pcO] [-L <lock>] <url> <url>\n"); |
168 fprintf(stderr, " copy [-pcO] [-L <lock>] <url> <url>\n"); |
169 fprintf(stderr, " move [-pcO] [-L <lock>] <url> <url>\n"); |
169 fprintf(stderr, " move [-pcO] [-L <lock>] <url> <url>\n"); |
187 fprintf(stderr, " -p Don't encrypt or decrypt files\n"); |
187 fprintf(stderr, " -p Don't encrypt or decrypt files\n"); |
188 fprintf(stderr, " -c Enable full encryption\n"); |
188 fprintf(stderr, " -c Enable full encryption\n"); |
189 fprintf(stderr, |
189 fprintf(stderr, |
190 " -R " |
190 " -R " |
191 "Recursively do the operation for all children\n"); |
191 "Recursively do the operation for all children\n"); |
|
192 fprintf(stderr, " -K Keep already present files\n"); |
192 fprintf(stderr, " -o <file> Write output to file\n"); |
193 fprintf(stderr, " -o <file> Write output to file\n"); |
193 fprintf( |
194 fprintf( |
194 stderr, |
195 stderr, |
195 " -u <date> " |
196 " -u <date> " |
196 "Get resources which are modified since the specified date\n"); |
197 "Get resources which are modified since the specified date\n"); |
745 // download only directory structure |
746 // download only directory structure |
746 // this is a hidden feature and will be replaced in the future |
747 // this is a hidden feature and will be replaced in the future |
747 return 0; |
748 return 0; |
748 } |
749 } |
749 |
750 |
|
751 int isstdout = !strcmp(out, "-"); |
|
752 if(cmd_getoption(a, "keep") && !isstdout) { |
|
753 struct stat s; |
|
754 if(stat(out, &s)) { |
|
755 if(errno != ENOENT) { |
|
756 perror("stat"); |
|
757 } |
|
758 } else { |
|
759 if(cmd_getoption(a, "recursive")) { |
|
760 printf("skip: %s\n", res->path); |
|
761 } |
|
762 return 0; |
|
763 } |
|
764 } |
|
765 |
750 // print some status message in recursive mode |
766 // print some status message in recursive mode |
751 if(cmd_getoption(a, "recursive")) { |
767 if(cmd_getoption(a, "recursive")) { |
752 printf("get: %s\n", res->path); |
768 printf("get: %s\n", res->path); |
753 } |
769 } |
754 |
770 |
755 FILE *fout = !strcmp(out, "-") ? stdout : fopen(out, "wb"); |
771 FILE *fout = isstdout ? stdout : fopen(out, "wb"); |
756 if(!fout) { |
772 if(!fout) { |
757 fprintf(stderr, "cannot open output file\n"); |
773 fprintf(stderr, "cannot open output file\n"); |
758 return -1; |
774 return -1; |
759 } |
775 } |
760 |
776 |