diff options
author | Colin Walters <walters@verbum.org> | 2015-01-16 13:03:10 -0500 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2015-01-19 13:45:11 -0500 |
commit | 1d216a8c604733bd9ac25200731ec2d8d781fe14 (patch) | |
tree | f70295a4aa639229963ba81f124c40a7f82c8d9b | |
parent | 0eac91a253d0c2451eb4c10ddd63bc172509939d (diff) | |
download | ostree-1d216a8c604733bd9ac25200731ec2d8d781fe14.tar.gz |
cmdline: (cleanup) Add internal helper to parse key=value options
This will be used by a later "ostree admin set-origin" as well.
-rw-r--r-- | src/ostree/ot-builtin-remote.c | 21 | ||||
-rw-r--r-- | src/ostree/ot-tool-util.c | 18 | ||||
-rw-r--r-- | src/ostree/ot-tool-util.h | 5 |
3 files changed, 25 insertions, 19 deletions
diff --git a/src/ostree/ot-builtin-remote.c b/src/ostree/ot-builtin-remote.c index aa40122a..8cc4ad38 100644 --- a/src/ostree/ot-builtin-remote.c +++ b/src/ostree/ot-builtin-remote.c @@ -25,6 +25,7 @@ #include "ot-main.h" #include "ot-builtins.h" #include "ostree.h" +#include "ot-tool-util.h" #include "otutil.h" static void @@ -35,24 +36,6 @@ usage_error (GOptionContext *context, const char *message, GError **error) g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED, message); } -static gboolean -parse_keyvalue (const char *keyvalue, - char **out_key, - char **out_value, - GError **error) -{ - const char *eq = strchr (keyvalue, '='); - if (!eq) - { - g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, - "Missing '=' in KEY=VALUE for --set"); - return FALSE; - } - *out_key = g_strndup (keyvalue, eq - keyvalue); - *out_value = g_strdup (eq + 1); - return TRUE; -} - static char **opt_set; static gboolean opt_no_gpg_verify; static gboolean opt_if_not_exists; @@ -114,7 +97,7 @@ ostree_remote_builtin_add (int argc, char **argv, GCancellable *cancellable, GEr gs_free char *subkey = NULL; gs_free char *subvalue = NULL; - if (!parse_keyvalue (keyvalue, &subkey, &subvalue, error)) + if (!ot_parse_keyvalue (keyvalue, &subkey, &subvalue, error)) goto out; g_variant_builder_add (optbuilder, "{s@v}", diff --git a/src/ostree/ot-tool-util.c b/src/ostree/ot-tool-util.c index fd4bbf92..f4dc8f9b 100644 --- a/src/ostree/ot-tool-util.c +++ b/src/ostree/ot-tool-util.c @@ -51,3 +51,21 @@ ot_parse_boolean (const char *option_name, return TRUE; } + +gboolean +ot_parse_keyvalue (const char *keyvalue, + char **out_key, + char **out_value, + GError **error) +{ + const char *eq = strchr (keyvalue, '='); + if (!eq) + { + g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, + "Missing '=' in KEY=VALUE for --set"); + return FALSE; + } + *out_key = g_strndup (keyvalue, eq - keyvalue); + *out_value = g_strdup (eq + 1); + return TRUE; +} diff --git a/src/ostree/ot-tool-util.h b/src/ostree/ot-tool-util.h index 201190e7..5070dae9 100644 --- a/src/ostree/ot-tool-util.h +++ b/src/ostree/ot-tool-util.h @@ -30,6 +30,11 @@ ot_parse_boolean (const char *option_name, const char *value, gboolean *out_parsed, GError **error); +gboolean +ot_parse_keyvalue (const char *keyvalue, + char **out_key, + char **out_value, + GError **error); G_END_DECLS |