Alloc passing the path to the configuration file as an argument (#134)

Signed-off-by: Roosembert Palacios <roosembert.palacios@epfl.ch>
pull/222/head
Roosemberth Palacios 5 years ago committed by nullgemm
parent f650e82f93
commit 31e1ba84af

@ -146,8 +146,12 @@ void lang_load()
} }
} }
void config_load() void config_load(const char *cfg_path)
{ {
if (cfg_path == NULL)
{
cfg_path = INI_CONFIG;
}
// must be alphabetically sorted // must be alphabetically sorted
struct configator_param map_no_section[] = struct configator_param map_no_section[] =
{ {
@ -202,7 +206,7 @@ void config_load()
config.sections = sections; config.sections = sections;
config.sections_len = sections_len; config.sections_len = sections_len;
configator(&config, INI_CONFIG); configator(&config, cfg_path);
} }
void lang_defaults() void lang_defaults()

@ -101,7 +101,7 @@ extern struct config config;
void config_handle_str(void* data, char** pars, const int pars_count); void config_handle_str(void* data, char** pars, const int pars_count);
void lang_load(); void lang_load();
void config_load(); void config_load(const char *cfg_path);
void lang_defaults(); void lang_defaults();
void config_defaults(); void config_defaults();
void lang_free(); void lang_free();

@ -16,7 +16,7 @@
#include <unistd.h> #include <unistd.h>
#include <stdlib.h> #include <stdlib.h>
#define ARG_COUNT 5 #define ARG_COUNT 7
// things you can define: // things you can define:
// GIT_VERSION_STRING // GIT_VERSION_STRING
// RUNIT // RUNIT
@ -61,6 +61,11 @@ void log_init(char** log)
log[DGN_HOSTNAME] = lang.err_hostname; log[DGN_HOSTNAME] = lang.err_hostname;
} }
void arg_config(void* data, char** pars, const int pars_count)
{
*((char **)data) = *pars;
}
// ly! // ly!
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
@ -71,17 +76,18 @@ int main(int argc, char** argv)
config_defaults(); config_defaults();
lang_defaults(); lang_defaults();
config_load();
if (strcmp(config.lang, "en") != 0) if (strcmp(config.lang, "en") != 0)
{ {
lang_load(); lang_load();
} }
char *config_path = NULL;
// parse args // parse args
const struct argoat_sprig sprigs[ARG_COUNT] = const struct argoat_sprig sprigs[ARG_COUNT] =
{ {
{NULL, 0, NULL, NULL}, {NULL, 0, NULL, NULL},
{"config", 0, &config_path, arg_config},
{"c", 0, &config_path, arg_config},
{"help", 0, NULL, arg_help}, {"help", 0, NULL, arg_help},
{"h", 0, NULL, arg_help}, {"h", 0, NULL, arg_help},
{"version", 0, NULL, arg_version}, {"version", 0, NULL, arg_version},
@ -106,6 +112,8 @@ int main(int argc, char** argv)
return 1; return 1;
} }
config_load(config_path);
void* input_structs[3] = void* input_structs[3] =
{ {
(void*) &desktop, (void*) &desktop,

Loading…
Cancel
Save