[Libosinfo] [PATCH 1/2] script: API to query username pattern
Zeeshan Ali (Khattak)
zeeshanak at gnome.org
Mon Aug 17 18:14:28 UTC 2015
Add API to allow applications to query the expected pattern of username
from install scripts.
---
data/schemas/libosinfo.rng | 5 +++++
osinfo/libosinfo.syms | 5 +++++
osinfo/osinfo_install_script.c | 16 ++++++++++++++++
osinfo/osinfo_install_script.h | 2 ++
osinfo/osinfo_loader.c | 1 +
5 files changed, 29 insertions(+)
diff --git a/data/schemas/libosinfo.rng b/data/schemas/libosinfo.rng
index b23d210..a019894 100644
--- a/data/schemas/libosinfo.rng
+++ b/data/schemas/libosinfo.rng
@@ -603,6 +603,11 @@
</element>
</optional>
<optional>
+ <element name='username-pattern'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
<element name='product-key-format'>
<text/>
</element>
diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms
index 68d54ff..7e83f8b 100644
--- a/osinfo/libosinfo.syms
+++ b/osinfo/libosinfo.syms
@@ -520,6 +520,11 @@ LIBOSINFO_0.2.12 {
osinfo_media_get_volume_size;
} LIBOSINFO_0.2.11;
+LIBOSINFO_0.2.13 {
+ global:
+ osinfo_install_script_get_username_pattern;
+} LIBOSINFO_0.2.12;
+
/* Symbols in next release...
LIBOSINFO_0.0.2 {
diff --git a/osinfo/osinfo_install_script.c b/osinfo/osinfo_install_script.c
index 9ded116..6842d3c 100644
--- a/osinfo/osinfo_install_script.c
+++ b/osinfo/osinfo_install_script.c
@@ -441,6 +441,22 @@ const gchar *osinfo_install_script_get_product_key_format(OsinfoInstallScript *s
OSINFO_INSTALL_SCRIPT_PROP_PRODUCT_KEY_FORMAT);
}
+/**
+ * osinfo_install_script_get_username_pattern:
+ * @script: the install script
+ *
+ * If this function returns a non-NULL string, it means that the @script
+ * requires the username to match the returned regular expression string.
+ *
+ * Returns: (transfer none) (allow-nullable): Regular express string that
+ * username must match, or %NULL.
+ */
+const gchar *osinfo_install_script_get_username_pattern(OsinfoInstallScript *script)
+{
+ return osinfo_entity_get_param_value(OSINFO_ENTITY(script),
+ OSINFO_INSTALL_SCRIPT_PROP_USERNAME_PATTERN);
+}
+
void osinfo_install_script_set_output_prefix(OsinfoInstallScript *script,
const gchar *prefix)
{
diff --git a/osinfo/osinfo_install_script.h b/osinfo/osinfo_install_script.h
index c494192..62c19bb 100644
--- a/osinfo/osinfo_install_script.h
+++ b/osinfo/osinfo_install_script.h
@@ -52,6 +52,7 @@ typedef struct _OsinfoInstallScriptPrivate OsinfoInstallScriptPrivate;
#define OSINFO_INSTALL_SCRIPT_PROP_TEMPLATE_DATA "template-data"
#define OSINFO_INSTALL_SCRIPT_PROP_PROFILE "profile"
#define OSINFO_INSTALL_SCRIPT_PROP_PRODUCT_KEY_FORMAT "product-key-format"
+#define OSINFO_INSTALL_SCRIPT_PROP_USERNAME_PATTERN "username-pattern"
#define OSINFO_INSTALL_SCRIPT_PROP_EXPECTED_FILENAME "expected-filename"
#define OSINFO_INSTALL_SCRIPT_PROP_PATH_FORMAT "path-format"
#define OSINFO_INSTALL_SCRIPT_PROP_CAN_PRE_INSTALL_DRIVERS "can-pre-install-drivers"
@@ -153,6 +154,7 @@ const gchar *osinfo_install_script_get_template_data(OsinfoInstallScript *script
const gchar *osinfo_install_script_get_profile(OsinfoInstallScript *script);
const gchar *osinfo_install_script_get_product_key_format(OsinfoInstallScript *script);
+const gchar *osinfo_install_script_get_username_pattern(OsinfoInstallScript *script);
void osinfo_install_script_set_output_prefix(OsinfoInstallScript *script, const gchar *prefix);
diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c
index 4e8f942..8eec254 100644
--- a/osinfo/osinfo_loader.c
+++ b/osinfo/osinfo_loader.c
@@ -819,6 +819,7 @@ static void osinfo_loader_install_script(OsinfoLoader *loader,
gchar *id = (gchar *)xmlGetProp(root, BAD_CAST "id");
const OsinfoEntityKey keys[] = {
{ OSINFO_INSTALL_SCRIPT_PROP_PROFILE, G_TYPE_STRING },
+ { OSINFO_INSTALL_SCRIPT_PROP_USERNAME_PATTERN, G_TYPE_STRING },
{ OSINFO_INSTALL_SCRIPT_PROP_PRODUCT_KEY_FORMAT, G_TYPE_STRING },
{ OSINFO_INSTALL_SCRIPT_PROP_PATH_FORMAT, G_TYPE_STRING },
{ OSINFO_INSTALL_SCRIPT_PROP_EXPECTED_FILENAME, G_TYPE_STRING },
--
2.4.3
More information about the Libosinfo
mailing list