dav/main.c

changeset 398
26fdeed98cd7
parent 384
8bfde5687890
child 410
0b9bea2d7283
--- a/dav/main.c	Wed May 30 20:07:19 2018 +0200
+++ b/dav/main.c	Thu May 31 15:24:52 2018 +0200
@@ -141,6 +141,10 @@
         } else if(!strcasecmp(cmd, "add-repository")
                 || !strcasecmp(cmd, "add-repo")) {
             ret = cmd_add_repository(args);
+        } else if(!strcasecmp(cmd, "remove-repository")
+                || !strcasecmp(cmd, "remove-repo")
+                || !strcasecmp(cmd, "rm-repo")) {
+            ret = cmd_remove_repository(args);
         } else if(!strcasecmp(cmd, "list-repositories")
                 || !strcasecmp(cmd, "list-repos")) {
             ret = list_repositories();
@@ -240,6 +244,7 @@
     fprintf(stderr, "\n");
     fprintf(stderr, "Config commands:\n");
     fprintf(stderr, "        add-repository\n");
+    fprintf(stderr, "        remove-repository\n");
     fprintf(stderr, "        list-repositories\n");
     fprintf(stderr, "        check-config\n");
     fprintf(stderr, "\n");
@@ -1926,3 +1931,28 @@
     
     return ret;
 }
+
+int cmd_remove_repository(CmdArgs *args) {
+    if(args->argc < 1) {
+        fprintf(stderr, "Too few arguments\n");
+        fprintf(stderr, "Usage: dav remove-repository <name...>\n");
+        return -1;
+    }
+    
+    for(int i = 0 ; i < args->argc ; i++) {
+        sstr_t reponame = sstr(args->argv[i]);
+        Repository* repo = get_repository(reponame);
+        if(repo) {
+            if(remove_repository(repo)) {
+                fprintf(stderr, "Cannot write config.xml\n");
+                return -1;
+            }
+        } else {
+            fprintf(stderr, "Repository %s does not exist - skipped.\n",
+                    reponame.ptr);
+            return -1;
+        }
+    }
+    
+    return -1;
+}

mercurial