diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2014-03-04 18:37:03 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2014-03-19 15:19:56 +0100 |
commit | 9cf7219d554f73c014b9c6efde7965384d8346ec (patch) | |
tree | 6e47c9cfa2813676a6cc72230e83036024eb2b2d | |
parent | 047a1ee7680e9a668896a12e2773d6544669d0e9 (diff) |
uci: Allow setting the UCI config path on the command line
Add a -c switch which allows setting an alternative UCI path instead of using
the libuci default.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
-rw-r--r-- | config.c | 4 | ||||
-rw-r--r-- | main.c | 7 | ||||
-rw-r--r-- | netifd.h | 3 |
3 files changed, 12 insertions, 2 deletions
@@ -190,8 +190,10 @@ config_init_package(const char *config) ctx = uci_alloc_context(); uci_ctx = ctx; + if (config_path) + uci_set_confdir(ctx, config_path); + #ifdef DUMMY_MODE - uci_set_confdir(ctx, "./config"); uci_set_savedir(ctx, "./tmp"); #endif } else { @@ -29,6 +29,7 @@ unsigned int debug_mask = 0; const char *main_path = DEFAULT_MAIN_PATH; +const char *config_path = DEFAULT_CONFIG_PATH; const char *resolv_conf = DEFAULT_RESOLV_CONF; static char **global_argv; @@ -237,6 +238,7 @@ static int usage(const char *progname) " -d <mask>: Mask for debug messages\n" " -s <path>: Path to the ubus socket\n" " -p <path>: Path to netifd addons (default: %s)\n" + " -c <path>: Path to UCI configuration\n" " -h <path>: Path to the hotplug script\n" " -r <path>: Path to resolv.conf\n" " -l <level>: Log output level (default: %d)\n" @@ -286,7 +288,7 @@ int main(int argc, char **argv) global_argv = argv; - while ((ch = getopt(argc, argv, "d:s:p:h:r:l:S")) != -1) { + while ((ch = getopt(argc, argv, "d:s:p:c:h:r:l:S")) != -1) { switch(ch) { case 'd': debug_mask = strtoul(optarg, NULL, 0); @@ -297,6 +299,9 @@ int main(int argc, char **argv) case 'p': main_path = optarg; break; + case 'c': + config_path = optarg; + break; case 'h': hotplug_cmd_path = optarg; break; @@ -30,10 +30,12 @@ #ifdef DUMMY_MODE #define DEFAULT_MAIN_PATH "./examples" +#define DEFAULT_CONFIG_PATH "./config" #define DEFAULT_HOTPLUG_PATH "./examples/hotplug-cmd" #define DEFAULT_RESOLV_CONF "./tmp/resolv.conf" #else #define DEFAULT_MAIN_PATH "/lib/netifd" +#define DEFAULT_CONFIG_PATH NULL /* use the default set in libuci */ #define DEFAULT_HOTPLUG_PATH "/sbin/hotplug-call" #define DEFAULT_RESOLV_CONF "/tmp/resolv.conf.auto" #endif @@ -94,6 +96,7 @@ struct device; struct interface; extern const char *main_path; +extern const char *config_path; void netifd_restart(void); void netifd_reload(void); |