소스 검색

config: Add option to remove config key

faxe1008 3 년 전
부모
커밋
06cb526feb
2개의 변경된 파일9개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 1
      Base/usr/share/man/man1/config.md
  2. 7 0
      Userland/Utilities/config.cpp

+ 2 - 1
Base/usr/share/man/man1/config.md

@@ -5,7 +5,7 @@ config
 ## Synopsis
 
 ```sh
-$ config <domain> <group> <key> [value]
+$ config [--remove] <domain> <group> <key> [value]
 ```
 
 ## Description
@@ -16,6 +16,7 @@ Show or modify values in the configuration files through ConfigServer.
 
 * `--help`: Display help message and exit
 * `--version`: Print version
+* `-r`, `--remove`: Remove key
 
 ## Arguments:
 

+ 7 - 0
Userland/Utilities/config.cpp

@@ -15,15 +15,22 @@ int main(int argc, char** argv)
     String group;
     String key;
     String value_to_write;
+    bool remove_key = false;
 
     Core::ArgsParser args_parser;
     args_parser.set_general_help("Show or modify values in the configuration files through ConfigServer.");
+    args_parser.add_option(remove_key, "Remove key", "remove", 'r');
     args_parser.add_positional_argument(domain, "Config domain", "domain");
     args_parser.add_positional_argument(group, "Group name", "group");
     args_parser.add_positional_argument(key, "Key name", "key");
     args_parser.add_positional_argument(value_to_write, "Value to write", "value", Core::ArgsParser::Required::No);
     args_parser.parse(argc, argv);
 
+    if (remove_key) {
+        Config::remove_key(domain, group, key);
+        return 0;
+    }
+
     if (!value_to_write.is_empty()) {
         Config::write_string(domain, group, key, value_to_write);
         return 0;