[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