From e14f802f580d5d339c71675e3520e24c6a99e463 Mon Sep 17 00:00:00 2001 From: Armin Luntzer <armin.luntzer@univie.ac.at> Date: Mon, 3 Jun 2019 15:58:43 +0200 Subject: [PATCH] more config file path searches --- src/client/widgets/sky/sky.c | 23 +++++++++++++++++++++-- src/server/backends/SIM/rt_sim.c | 8 ++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/client/widgets/sky/sky.c b/src/client/widgets/sky/sky.c index c07c2e4..a7abaa6 100644 --- a/src/client/widgets/sky/sky.c +++ b/src/client/widgets/sky/sky.c @@ -437,6 +437,24 @@ static int sky_load_config(Sky *p) /* search relative path first */ ret = sky_load_config_from_prefix(p, "data/", &error); + + if (ret) { + g_clear_error(&error); + /* try again in confdir */ + prefix = g_strconcat(CONFDIR, "/data/", NULL); + ret = sky_load_config_from_prefix(p, prefix, &error); + g_free(prefix); + } + + + if (ret) { + g_clear_error(&error); + /* try again in confdir */ + prefix = g_strconcat("etc/", CONFDIR, "/data/", NULL); + ret = sky_load_config_from_prefix(p, prefix, &error); + g_free(prefix); + } + if (ret) { g_clear_error(&error); /* try again in sysconfdir */ @@ -445,10 +463,11 @@ static int sky_load_config(Sky *p) g_free(prefix); } + if (ret) { g_warning("Could not find sky_objects.cfg: %s. " - "Looked in data/, %sdata and %s/%sdata", - error->message, CONFDIR, SYSCONFDIR, CONFDIR); + "Looked in data/, %sdata, etc/%d/data/ and %s/%sdata", + error->message, CONFDIR, CONFDIR, SYSCONFDIR, CONFDIR); g_clear_error(&error); return -1; diff --git a/src/server/backends/SIM/rt_sim.c b/src/server/backends/SIM/rt_sim.c index a8013c4..d5f5e37 100644 --- a/src/server/backends/SIM/rt_sim.c +++ b/src/server/backends/SIM/rt_sim.c @@ -299,6 +299,14 @@ int sim_load_config(void) g_free(prefix); } + if (ret) { + g_clear_error(&error); + /* try again in confdir */ + prefix = g_strconcat("etc/", CONFDIR, "/", NULL); + ret = sim_load_config_from_prefix(prefix, &error); + g_free(prefix); + } + if (ret) { g_clear_error(&error); /* try again in sysconfdir */ -- GitLab