dav/xattrtool.c

changeset 663
888aa263c0f1
parent 660
e835ec0b7f17
child 687
9922a349a61a
--- a/dav/xattrtool.c	Sat Oct 19 11:15:04 2019 +0200
+++ b/dav/xattrtool.c	Sat Oct 19 15:46:33 2019 +0200
@@ -40,6 +40,7 @@
 int attrtool_list(int argc, char **argv, int values);
 int attrtool_get(int argc, char **argv, int raw);
 int attrtool_set(int argc, char **argv);
+int attrtool_rm(int argc, char **argv);
 
 void print_usage(char *cmd) {
     fprintf(stderr, "usage %s:\n", cmd);
@@ -47,7 +48,7 @@
     fprintf(stderr, "   listvalues <file>\n");
     fprintf(stderr, "   get <file> <name>\n");
     fprintf(stderr, "   set <file> <name> <value>\n");
-    fprintf(stderr, "   getraw <file> <name>\n");
+    fprintf(stderr, "   remove <file> <name>\n");
 }
 
 int main(int argc, char **argv) {
@@ -62,10 +63,10 @@
         return attrtool_list(argc, argv, 1);
     } else if(!strcmp(argv[1], "get")) {
         return attrtool_get(argc, argv, 0);
-    } else if(!strcmp(argv[1], "getraw")) {
-        return attrtool_get(argc, argv, 1);
     } else if(!strcmp(argv[1], "set")) {
         return attrtool_set(argc, argv);
+    } else if(!strcmp(argv[1], "rm") || !strcmp(argv[1], "remove")) {
+        return attrtool_rm(argc, argv);
     } else {
         fprintf(stderr, "Unknown command\n");
         print_usage(argv[0]);
@@ -158,3 +159,21 @@
     return ret;
 }
 
+int attrtool_rm(int argc, char **argv) {
+    if(argc < 4) {
+        fprintf(stderr, "Too few arguments\n");
+        print_usage(argv[1]);
+        return 1;
+    }
+    
+    char *file = argv[2];
+    char *attr = argv[3];
+    int ret = 0;
+    
+    if(xattr_remove(file, attr)) {
+        perror("xattr_remove");
+        ret = 1;
+    }
+    
+    return ret;
+}

mercurial