summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2015-01-16 13:03:10 -0500
committerColin Walters <walters@verbum.org>2015-01-19 13:45:11 -0500
commit1d216a8c604733bd9ac25200731ec2d8d781fe14 (patch)
treef70295a4aa639229963ba81f124c40a7f82c8d9b
parent0eac91a253d0c2451eb4c10ddd63bc172509939d (diff)
downloadostree-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.c21
-rw-r--r--src/ostree/ot-tool-util.c18
-rw-r--r--src/ostree/ot-tool-util.h5
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