703 return ret; |
703 return ret; |
704 } |
704 } |
705 |
705 |
706 int get_resource(Repository *repo, DavResource *res, CmdArgs *a, char *out) { |
706 int get_resource(Repository *repo, DavResource *res, CmdArgs *a, char *out) { |
707 size_t outlen = strlen(out); |
707 size_t outlen = strlen(out); |
708 // print some status message in recursive mode |
708 |
709 if(cmd_getoption(a, "recursive")) { |
709 if(res->iscollection) { |
710 printf("get: %s\n", res->path); |
710 printf("get: %s\n", res->path); |
711 } |
711 |
712 |
|
713 if(res->iscollection) { |
|
714 // create directory |
712 // create directory |
715 if(outlen != 0) { |
713 if(outlen != 0) { |
716 mode_t mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; |
714 mode_t mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; |
717 int ret = util_mkdir(out, mode); |
715 int ret = util_mkdir(out, mode); |
718 if(ret != 0 && errno != EEXIST) { |
716 if(ret != 0 && errno != EEXIST) { |
733 } |
731 } |
734 child = child->next; |
732 child = child->next; |
735 } |
733 } |
736 |
734 |
737 return 0; |
735 return 0; |
|
736 } else if(cmd_getoption(a, "structure")) { |
|
737 // download only directory structure |
|
738 // this is a hidden feature and will be replaced in the future |
|
739 return 0; |
|
740 } |
|
741 |
|
742 // print some status message in recursive mode |
|
743 if(cmd_getoption(a, "recursive")) { |
|
744 printf("get: %s\n", res->path); |
738 } |
745 } |
739 |
746 |
740 FILE *fout = !strcmp(out, "-") ? stdout : fopen(out, "wb"); |
747 FILE *fout = !strcmp(out, "-") ? stdout : fopen(out, "wb"); |
741 if(!fout) { |
748 if(!fout) { |
742 fprintf(stderr, "cannot open output file\n"); |
749 fprintf(stderr, "cannot open output file\n"); |