[Libosinfo] [PATCH v3 54/60] loader: pull out code for building database paths
Christophe Fergeau
cfergeau at redhat.com
Fri Oct 16 10:23:06 UTC 2015
On Mon, Oct 12, 2015 at 06:11:15PM +0100, Daniel P. Berrange wrote:
> Create standalone helper methods for constructing a GFile
> object for the system/local/user database paths.
>
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
> osinfo/osinfo_loader.c | 54 +++++++++++++++++++++++++++++++-------------------
> 1 file changed, 34 insertions(+), 20 deletions(-)
>
> diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c
> index bcea3fc..1c35a3c 100644
> --- a/osinfo/osinfo_loader.c
> +++ b/osinfo/osinfo_loader.c
> @@ -1910,6 +1910,37 @@ void osinfo_loader_process_uri(OsinfoLoader *loader,
> }
>
>
> +static GFile *osinfo_loader_get_system_path(void)
> +{
> + GFile *file;
> + gchar *dbdir;
> + const gchar *path = g_getenv("OSINFO_DATA_DIR");
> + if (!path)
> + path = PKG_DATA_DIR;
> +
> + dbdir = g_strdup_printf("%s/db", path);
The various g_strdup_printf() could be replaced with g_build_filename()
(but then this patch would be more than code movement).
Looks good otherwise.
Christophe
> + file = g_file_new_for_path(dbdir);
> + g_free(dbdir);
> + return file;
> +}
> +
> +static GFile *osinfo_loader_get_local_path(void)
> +{
> + return g_file_new_for_path(SYS_CONF_DIR "/libosinfo/db");
> +}
> +
> +static GFile *osinfo_loader_get_user_path(void)
> +{
> + GFile *file;
> + gchar *dbdir;
> + const gchar *configdir = g_get_user_config_dir();
> +
> + dbdir = g_strdup_printf("%s/libosinfo/db", configdir);
> + file = g_file_new_for_path(dbdir);
> + g_free(dbdir);
> + return file;
> +}
> +
> void osinfo_loader_process_default_path(OsinfoLoader *loader, GError **err)
> {
> GError *error = NULL;
> @@ -1950,28 +1981,17 @@ void osinfo_loader_process_default_path(OsinfoLoader *loader, GError **err)
> void osinfo_loader_process_system_path(OsinfoLoader *loader,
> GError **err)
> {
> - GFile *file;
> - gchar *dbdir;
> - const gchar *path = g_getenv("OSINFO_DATA_DIR");
> - if (!path)
> - path = PKG_DATA_DIR;
> -
> - dbdir = g_strdup_printf("%s/db", path);
> - file = g_file_new_for_path(dbdir);
> + GFile *file = osinfo_loader_get_system_path();
> osinfo_loader_process_file(loader,
> file,
> FALSE,
> err);
> g_object_unref(file);
> - g_free(dbdir);
> }
>
> void osinfo_loader_process_local_path(OsinfoLoader *loader, GError **err)
> {
> - GFile *file;
> - const gchar *dbdir = SYS_CONF_DIR "/libosinfo/db";
> -
> - file = g_file_new_for_path(dbdir);
> + GFile *file = osinfo_loader_get_local_path();
> osinfo_loader_process_file(loader,
> file,
> TRUE,
> @@ -1981,18 +2001,12 @@ void osinfo_loader_process_local_path(OsinfoLoader *loader, GError **err)
>
> void osinfo_loader_process_user_path(OsinfoLoader *loader, GError **err)
> {
> - GFile *file;
> - gchar *dbdir;
> - const gchar *configdir = g_get_user_config_dir();
> -
> - dbdir = g_strdup_printf("%s/libosinfo/db", configdir);
> - file = g_file_new_for_path(dbdir);
> + GFile *file = osinfo_loader_get_user_path();
> osinfo_loader_process_file(loader,
> file,
> TRUE,
> err);
> g_object_unref(file);
> - g_free(dbdir);
> }
>
> /*
> --
> 2.4.3
>
> _______________________________________________
> Libosinfo mailing list
> Libosinfo at redhat.com
> https://www.redhat.com/mailman/listinfo/libosinfo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libosinfo/attachments/20151016/54192109/attachment.sig>
More information about the Libosinfo
mailing list