dav/sync.c

changeset 191
0e45b04236a7
parent 190
a76e43d89f55
child 192
d10194a51304
--- a/dav/sync.c	Fri Feb 12 18:26:58 2016 +0100
+++ b/dav/sync.c	Fri Feb 26 20:54:42 2016 +0100
@@ -45,6 +45,7 @@
 #include "scfg.h"
 #include "sopt.h"
 #include "db.h"
+#include "error.h"
 
 #include "sync.h"
 #include "ucx/properties.h"
@@ -90,7 +91,7 @@
         ret = cmd_push(args);
     } else if(!strcasecmp(cmd, "version") || !strcasecmp(cmd, "-version") || !strcasecmp(cmd, "--version")) {
 #ifdef DEBUG
-        fprintf(stderr, "dav-synv %s unstable\n", DAV_VERSION);
+        fprintf(stderr, "dav-sync %s unstable\n", DAV_VERSION);
 #else
         fprintf(stderr, "dav-sync %s\n", DAV_VERSION);
 #endif
@@ -106,11 +107,12 @@
     
     fprintf(stderr, "Commands:\n");
     fprintf(stderr, "        pull [-c] <directory>\n");
-    fprintf(stderr, "        push [-r] <directory>\n\n");
+    //fprintf(stderr, "        push [-r] <directory>\n\n");
+    fprintf(stderr, "        push <directory>\n\n");
     
     fprintf(stderr, "Options:\n");
-    fprintf(stderr, "        -c         Disable conflict detection\n");
-    fprintf(stderr, "        -r         Read changes from stdin\n\n");
+    fprintf(stderr, "        -c         Disable conflict detection\n\n");
+    //fprintf(stderr, "        -r         Read changes from stdin\n\n");
 }
 
 static int res_matches_filter(SyncDirectory *dir, char *res_path) {
@@ -191,13 +193,14 @@
     
     DavResource *ls = dav_query(sn, "select D:getetag,idav:status from / with depth = infinity");
     if(!ls) {
-        fprintf(stderr, "Error\n");
+        print_resource_error(sn, "/");
         // TODO: free
         return -1;
     }
     
     if(!ls->children) {
         // TODO: free
+        fprintf(stderr, "Repository is empty\n");
         return 0; // empty repository
     }
     
@@ -591,16 +594,24 @@
             // upload every changed file
             if (local_resource_is_changed(dir, db, local_res)) {
                 DavResource *res = dav_resource_new(sn, local_res->path);
+                if(!res) {
+                    print_resource_error(sn, local_res->path);
+                    break;
+                }
                 
                 if(local_res->isdirectory) {
                     printf("mkcol: %s\n", local_res->path);
                     if(sync_mkdir(dir, res, local_res)) {
-                        // TODO: I don't know what to do now
+                        print_resource_error(sn, res->path);
+                        dav_resource_free(res);
+                        break;
                     }
                 } else {
                     printf("put: %s\n", local_res->path);
                     if(sync_put_resource(dir, res, local_res)) {
-                        // TODO: I don't know what to do now
+                        print_resource_error(sn, res->path);
+                        dav_resource_free(res);
+                        break;
                     }
                 }
                 dav_resource_free(res);
@@ -621,6 +632,10 @@
         if (!res_matches_filter(dir, local->path+1)) {
             if(sync_delete_remote_resource(sn, local)) {
                 ucx_map_cstr_put(lclres, local->path, local);
+                if(sn->error != DAV_NOT_FOUND) {
+                    print_resource_error(sn, local->path);
+                    break;
+                }
             }
         }
     }

mercurial