[Libosinfo] [PATCH 1/2] script: API to query username pattern

Fabiano Fidêncio fabiano at fidencio.org
Wed Aug 26 06:53:34 UTC 2015


On Mon, Aug 17, 2015 at 8:14 PM, Zeeshan Ali (Khattak)
<zeeshanak at gnome.org> wrote:
> 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
>
> _______________________________________________
> Libosinfo mailing list
> Libosinfo at redhat.com
> https://www.redhat.com/mailman/listinfo/libosinfo


Both patches look good, ACK from me.

Best Regards,
-- 
Fabiano Fidêncio




More information about the Libosinfo mailing list