[Libosinfo] [PATCH 04/10] Add osinfo_install_script_generate_command_line_for_media()
Christophe Fergeau
cfergeau at redhat.com
Tue May 12 12:19:57 UTC 2015
ACK.
On Thu, May 07, 2015 at 05:36:39PM +0100, Zeeshan Ali (Khattak) wrote:
> Add variant of osinfo_install_script_generate_command_line() that takes
> (an identified) media instead of an OS. Currently no commandline
> template needs access to media but lets add this to be future safe and
> be consistent with other osinfo_install_script_generation*() API.
> ---
> osinfo/libosinfo.syms | 2 ++
> osinfo/osinfo_install_script.c | 47 ++++++++++++++++++++++++++++++++++++++++++
> osinfo/osinfo_install_script.h | 3 +++
> 3 files changed, 52 insertions(+)
>
> diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms
> index 3906f89..68d54ff 100644
> --- a/osinfo/libosinfo.syms
> +++ b/osinfo/libosinfo.syms
> @@ -507,6 +507,8 @@ LIBOSINFO_0.2.11 {
>
> LIBOSINFO_0.2.12 {
> global:
> + osinfo_install_script_generate_command_line_for_media;
> +
> osinfo_install_script_generate_for_media;
> osinfo_install_script_generate_for_media_async;
> osinfo_install_script_generate_for_media_finish;
> diff --git a/osinfo/osinfo_install_script.c b/osinfo/osinfo_install_script.c
> index a251557..66593bb 100644
> --- a/osinfo/osinfo_install_script.c
> +++ b/osinfo/osinfo_install_script.c
> @@ -1588,6 +1588,53 @@ gchar *osinfo_install_script_generate_command_line(OsinfoInstallScript *script,
> return output;
> }
>
> +/**
> + * osinfo_install_script_generate_command_line_for_media:
> + * @script: the install script
> + * @media: the media
> + * @config: the install script config
> + *
> + * Some install scripts need to pass a command line to the kernel, Such install
> + * scripts belong to OSs that provide paths to the kernel and initrd files that
> + * can be used to directly boot
> + * (http://wiki.qemu.org/download/qemu-doc.html#direct_005flinux_005fboot)
> + * the OS in order to pass the needed commandline to it.
> + *
> + * The media @media must have been identified successfully using
> + * #osinfo_db_identify_media() before calling this function.
> + *
> + * Returns: (transfer full): The generated command line string, NULL otherwise.
> + */
> +gchar *osinfo_install_script_generate_command_line_for_media(OsinfoInstallScript *script,
> + OsinfoMedia *media,
> + OsinfoInstallConfig *config)
> +{
> + const gchar *templateData = osinfo_install_script_get_template_data(script);
> + gchar *output = NULL;
> + OsinfoOs *os;
> +
> + g_return_val_if_fail (media != NULL, NULL);
> +
> + os = osinfo_media_get_os (media);
> + g_return_val_if_fail (os != NULL, NULL);
> +
> + if (templateData) {
> + GError *error = NULL;
> + if (!osinfo_install_script_apply_template(script,
> + os,
> + media,
> + "<data>",
> + templateData,
> + "command-line",
> + &output,
> + config,
> + &error)) {
> + g_prefix_error(&error, "%s", _("Failed to apply script template: "));
> + }
> + }
> +
> + return output;
> +}
>
> OsinfoPathFormat osinfo_install_script_get_path_format(OsinfoInstallScript *script)
> {
> diff --git a/osinfo/osinfo_install_script.h b/osinfo/osinfo_install_script.h
> index 0a6afcb..c494192 100644
> --- a/osinfo/osinfo_install_script.h
> +++ b/osinfo/osinfo_install_script.h
> @@ -235,6 +235,9 @@ GFile *osinfo_install_script_generate_output_for_media(OsinfoInstallScript *scri
> gchar *osinfo_install_script_generate_command_line(OsinfoInstallScript *script,
> OsinfoOs *os,
> OsinfoInstallConfig *config);
> +gchar *osinfo_install_script_generate_command_line_for_media(OsinfoInstallScript *script,
> + OsinfoMedia *media,
> + OsinfoInstallConfig *config);
>
> gboolean osinfo_install_script_has_config_param(const OsinfoInstallScript *script, const OsinfoInstallConfigParam *config_param);
>
> --
> 2.1.0
>
> _______________________________________________
> Libosinfo mailing list
> Libosinfo at redhat.com
> https://www.redhat.com/mailman/listinfo/libosinfo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libosinfo/attachments/20150512/c7bca150/attachment.sig>
More information about the Libosinfo
mailing list