dav/sync.c

changeset 299
c517502d3e38
parent 296
bb49953b1cf8
child 302
395763c0ee69
equal deleted inserted replaced
298:755b8198b071 299:c517502d3e38
98 } 98 }
99 } else if(!cfgret) { 99 } else if(!cfgret) {
100 if(!strcmp(cmd, "pull")) { 100 if(!strcmp(cmd, "pull")) {
101 ret = cmd_pull(args); 101 ret = cmd_pull(args);
102 } else if(!strcmp(cmd, "push")) { 102 } else if(!strcmp(cmd, "push")) {
103 ret = cmd_push(args); 103 ret = cmd_push(args, FALSE);
104 } else if(!strcmp(cmd, "archive")) {
105 ret = cmd_push(args, TRUE);
104 } else if(!strcmp(cmd, "resolve-conflicts")) { 106 } else if(!strcmp(cmd, "resolve-conflicts")) {
105 ret = cmd_resolve_conflicts(args); 107 ret = cmd_resolve_conflicts(args);
106 } else if(!strcmp(cmd, "delete-conflicts")) { 108 } else if(!strcmp(cmd, "delete-conflicts")) {
107 ret = cmd_delete_conflicts(args); 109 ret = cmd_delete_conflicts(args);
108 } else if(!strcmp(cmd, "trash-info")) { 110 } else if(!strcmp(cmd, "trash-info")) {
140 fprintf(stderr, "Usage: %s command [options] arguments...\n\n", cmd); 142 fprintf(stderr, "Usage: %s command [options] arguments...\n\n", cmd);
141 143
142 fprintf(stderr, "Commands:\n"); 144 fprintf(stderr, "Commands:\n");
143 fprintf(stderr, " pull [-cld] <directory>\n"); 145 fprintf(stderr, " pull [-cld] <directory>\n");
144 fprintf(stderr, " push [-cld] <directory>\n"); 146 fprintf(stderr, " push [-cld] <directory>\n");
147 fprintf(stderr, " archive [-cld] <directory>\n");
145 fprintf(stderr, " resolve-conflicts <directory>\n"); 148 fprintf(stderr, " resolve-conflicts <directory>\n");
146 fprintf(stderr, " delete-conflicts <directory>\n"); 149 fprintf(stderr, " delete-conflicts <directory>\n");
147 fprintf(stderr, " trash-info <directory>\n"); 150 fprintf(stderr, " trash-info <directory>\n");
148 fprintf(stderr, " empty-trash <directory>\n\n"); 151 fprintf(stderr, " empty-trash <directory>\n\n");
149 152
733 736
734 static int res_isconflict(SyncDatabase *db, LocalResource *res) { 737 static int res_isconflict(SyncDatabase *db, LocalResource *res) {
735 return ucx_map_cstr_get(db->conflict, res->path) ? 1 : 0; 738 return ucx_map_cstr_get(db->conflict, res->path) ? 1 : 0;
736 } 739 }
737 740
738 int cmd_push(CmdArgs *a) { 741 int cmd_push(CmdArgs *a, DavBool archive) {
739 if(a->argc != 1) { 742 if(a->argc != 1) {
740 fprintf(stderr, "Too %s arguments\n", a->argc < 1 ? "few" : "many"); 743 fprintf(stderr, "Too %s arguments\n", a->argc < 1 ? "few" : "many");
741 return -1; 744 return -1;
742 } 745 }
743 746
876 } 879 }
877 } 880 }
878 } 881 }
879 882
880 // delete all removed files 883 // delete all removed files
881 if(ret == 0) { 884 if(ret == 0 && !archive) {
882 UcxMapIterator i = ucx_map_iterator(db->resources); 885 UcxMapIterator i = ucx_map_iterator(db->resources);
883 LocalResource *local; 886 LocalResource *local;
884 UCX_MAP_FOREACH(key, local, i) { 887 UCX_MAP_FOREACH(key, local, i) {
885 if (!res_matches_filter(dir, local->path+1)) { 888 if (!res_matches_filter(dir, local->path+1)) {
886 if(sync_delete_remote_resource(sn, local, &sync_delete)) { 889 if(sync_delete_remote_resource(sn, local, &sync_delete)) {
933 if(ret != -2) { 936 if(ret != -2) {
934 char *str_success = sync_success == 1 ? "file" : "files"; 937 char *str_success = sync_success == 1 ? "file" : "files";
935 char *str_delete = sync_delete == 1 ? "file" : "files"; 938 char *str_delete = sync_delete == 1 ? "file" : "files";
936 char *str_skipped = sync_delete == 1 ? "file" : "files"; 939 char *str_skipped = sync_delete == 1 ? "file" : "files";
937 char *str_error = sync_error == 1 ? "error" : "errors"; 940 char *str_error = sync_error == 1 ? "error" : "errors";
938 printf("Result: %d %s pushed, %d %s deleted, %d %s skipped, %d %s\n", 941
939 sync_success, str_success, 942 printf("Result: %d %s pushed, ", sync_success, str_success);
940 sync_delete,str_delete, 943 if(!archive) {
941 sync_skipped,str_skipped, 944 printf("%d %s deleted, ", sync_delete, str_delete);
942 sync_error, str_error); 945 }
946 printf("%d %s skipped, %d %s\n",
947 sync_skipped, str_skipped, sync_error, str_error);
943 } 948 }
944 949
945 return ret; 950 return ret;
946 } 951 }
947 952

mercurial