From 45e310482350cfab628f359f2b0efebf06fb7c77 Mon Sep 17 00:00:00 2001 From: Sergey Trofimov Date: Sat, 23 Nov 2024 14:12:21 +0100 Subject: [PATCH] Allow the configuration file to be specified via an environment variable. --- src/gclue-config.c | 13 ++++++++++--- src/gclue-static-source.c | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/gclue-config.c b/src/gclue-config.c index acd6009..3045571 100644 --- a/src/gclue-config.c +++ b/src/gclue-config.c @@ -26,8 +26,8 @@ #include "gclue-config.h" -#define CONFIG_FILE_PATH SYSCONFDIR "/geoclue/geoclue.conf" -#define CONFIG_D_DIRECTORY SYSCONFDIR "/geoclue/conf.d/" +#define CONFIG_FILE_PATH "/etc/geoclue/geoclue.conf" +#define CONFIG_D_DIRECTORY "/etc/geoclue/conf.d/" /* This class will be responsible for fetching configuration. */ @@ -546,8 +546,15 @@ gclue_config_init (GClueConfig *config) priv->wifi_submit_url = g_strdup (DEFAULT_WIFI_SUBMIT_URL); priv->wifi_submit_nick = g_strdup (DEFAULT_WIFI_SUBMIT_NICK); - /* Load config file from default path, log all missing parameters */ priv->key_file = g_key_file_new (); + + char *env_config_file = g_getenv ("GEOCLUE_CONFIG_FILE"); + if (env_config_file) { + load_config_file (config, env_config_file); + goto out; // don't load conf.d + } + + /* Load config file from default path, log all missing parameters */ load_config_file (config, CONFIG_FILE_PATH); /* diff --git a/src/gclue-static-source.c b/src/gclue-static-source.c index 1c35cea..7957797 100644 --- a/src/gclue-static-source.c +++ b/src/gclue-static-source.c @@ -26,7 +26,7 @@ #include "gclue-enum-types.h" #define GEO_FILE_NAME "geolocation" -#define GEO_FILE_PATH SYSCONFDIR "/" GEO_FILE_NAME +#define GEO_FILE_PATH "/etc/" GEO_FILE_NAME /* Rate limit of geolocation file monitoring. * In milliseconds. -- 2.46.0