diff --git a/CHANGELOG.md b/CHANGELOG.md index de8287475488763f5a25520d94fa8112b3caa17d..29500837ab9c8f3747c63b21192b83f7ca3bf759 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ If a change only affects particular applications, they are listed in parentheses ## Unreleased +- feat: Load config from /usr/share aswell (!26, thanks @fossdd) - feat(buffyboard): Add man pages (!23, thanks @Jarrah) - misc: Unify build system (!23, thanks @Jarrah) - misc: Ensure stable file order during builds (!24, thanks @devrtz) diff --git a/buffyboard/README.md b/buffyboard/README.md index decb3d70b3e1cbfddd1ec1d1d804a414edeaeb03..1ff209315469bfba98afa4f8bb82b53f015a07b4 100644 --- a/buffyboard/README.md +++ b/buffyboard/README.md @@ -44,6 +44,8 @@ Mandatory arguments to long options are mandatory for short options too. -C, --config-override Path to a config override file. Can be supplied multiple times. Config files are merged in the following order: + * /usr/share/buffyboard.conf + * /usr/share/buffyboard.conf.d/* (alphabetically) * /etc/buffyboard.conf * /etc/buffyboard.conf.d/* (alphabetically) * Override files (in supplied order) diff --git a/buffyboard/command_line.c b/buffyboard/command_line.c index b8498763ac7703e890caac9a13e0e796d1be1106..58abf588eb16529371193171c3dd664377262399 100644 --- a/buffyboard/command_line.c +++ b/buffyboard/command_line.c @@ -57,6 +57,8 @@ static void print_usage() { " -C, --config-override Path to a config override file. Can be supplied\n" " multiple times. Config files are merged in the\n" " following order:\n" + " * /usr/share/buffyboard.conf\n" + " * /usr/share/buffyboard.conf.d/* (alphabetically)\n" " * /etc/buffyboard.conf\n" " * /etc/buffyboard.conf.d/* (alphabetically)\n" " * Override files (in supplied order)\n" diff --git a/buffyboard/doc/buffyboard.1.scd b/buffyboard/doc/buffyboard.1.scd index 6699a3728251ea0b48579654322116c28d3e06e1..a37957fbda648500aa38a54f12371536ea39dda5 100644 --- a/buffyboard/doc/buffyboard.1.scd +++ b/buffyboard/doc/buffyboard.1.scd @@ -27,6 +27,8 @@ result. *-C, --config-override* Path to a config override file. Can be supplied multiple times. Config files are merged in the following order: + - /usr/share/buffyboard.conf + - /usr/share/buffyboard.conf.d/\* (alphabetically) - /etc/buffyboard.conf - /etc/buffyboard.conf.d/\* (alphabetically) - Override files (in supplied order) diff --git a/buffyboard/doc/buffyboard.conf.5.scd b/buffyboard/doc/buffyboard.conf.5.scd index d82ff46de8f6c30fbf4778b627fe329eb00dbc34..b16a529d5baba4eec2c6861539d8b3cdc97b3392 100644 --- a/buffyboard/doc/buffyboard.conf.5.scd +++ b/buffyboard/doc/buffyboard.conf.5.scd @@ -14,10 +14,11 @@ one option/value pair per line: <option>=<value> ``` -The default configuration file is at /etc/buffyboard.conf, BUFFYBOARD will use this -configuration file if present along with overrides placed in -/etc/buffyboard.conf.d/ and those specified with the -C option. All config files -will be merged in the following order: +On launch, BUFFYBOARD searches for configuration files in various locations and +successively merges all files together into a single configuration. Files are searched +for and, if found, merged in the following order: + - /usr/share/buffyboard.conf + - /usr/share/buffyboard.conf.d/ (alphabetically) - /etc/buffyboard.conf - /etc/buffyboard.conf.d/ (alphabetically) - Override files (in supplied order) diff --git a/buffyboard/main.c b/buffyboard/main.c index bce449643865707b51e71d7d03bb9e83b6ae29c8..d734f93976155dbc5a03e71e0b8bc01ec9039a1a 100644 --- a/buffyboard/main.c +++ b/buffyboard/main.c @@ -188,6 +188,8 @@ int main(int argc, char *argv[]) { /* Parse config files */ bb_config_init_opts(&conf_opts); + bb_config_parse_file("/usr/share/buffyboard.conf", &conf_opts); + bb_config_parse_directory("/usr/share/buffyboard.conf.d", &conf_opts); bb_config_parse_file("/etc/buffyboard.conf", &conf_opts); bb_config_parse_directory("/etc/buffyboard.conf.d", &conf_opts); bb_config_parse_files(cli_opts.config_files, cli_opts.num_config_files, &conf_opts); diff --git a/unl0kr/README.md b/unl0kr/README.md index aa8d628d29d0cac9a8a2af8d026cb0c2f0aaa745..e898c4140275c74655525d816bd0da840cec3b08 100644 --- a/unl0kr/README.md +++ b/unl0kr/README.md @@ -52,6 +52,8 @@ Mandatory arguments to long options are mandatory for short options too. -C, --config-override Path to a config override file. Can be supplied multiple times. Config files are merged in the following order: + * /usr/share/unl0kr.conf + * /usr/share/unl0kr.conf.d/* (alphabetically) * /etc/unl0kr.conf * /etc/unl0kr.conf.d/* (alphabetically) * Override files (in supplied order) diff --git a/unl0kr/command_line.c b/unl0kr/command_line.c index 1831a4047d863767677d504e1c48907823077c1d..2a762a455fae5911e8780a6598d808a0bc699716 100644 --- a/unl0kr/command_line.c +++ b/unl0kr/command_line.c @@ -59,6 +59,8 @@ static void print_usage() { " -C, --config-override Path to a config override file. Can be supplied\n" " multiple times. Config files are merged in the\n" " following order:\n" + " * /usr/share/unl0kr.conf\n" + " * /usr/share/unl0kr.conf.d/* (alphabetically)\n" " * /etc/unl0kr.conf\n" " * /etc/unl0kr.conf.d/* (alphabetically)\n" " * Override files (in supplied order)\n" diff --git a/unl0kr/doc/unl0kr.1.scd b/unl0kr/doc/unl0kr.1.scd index defeaabded461c62138699df44f6b8c5bf13f055..f7557cbd89135d4688bfc9d30f9d205270d9440a 100644 --- a/unl0kr/doc/unl0kr.1.scd +++ b/unl0kr/doc/unl0kr.1.scd @@ -24,6 +24,8 @@ password is printed to STDOUT. All other output happens on STDERR. *-C, --config-override* Path to a config override file. Can be supplied multiple times. Config files are merged in the following order: + - /usr/share/unl0kr.conf + - /usr/share/unl0kr.conf.d/\* (alphabetically) - /etc/unl0kr.conf - /etc/unl0kr.conf.d/\* (alphabetically) - Override files (in supplied order) diff --git a/unl0kr/doc/unl0kr.conf.5.scd b/unl0kr/doc/unl0kr.conf.5.scd index a9c181d6cab333d11566abcf6bb29851063992c8..7608d25b0bff5e56074edac794dc7432fea8d156 100644 --- a/unl0kr/doc/unl0kr.conf.5.scd +++ b/unl0kr/doc/unl0kr.conf.5.scd @@ -14,11 +14,12 @@ one option/value pair per line: <option>=<value> ``` -The default configuration file is at /etc/unl0kr.conf, UNL0KR will use this -configuration file if present along with overrides placed in -/etc/unl0kr.conf.d/ and those specified with the -C option. All config files -will be merged in the following order: - - /etc/unl0kr.conf +On launch, UNL0KR searches for configuration files in various locations and +successively merges all files together into a single configuration. Files are searched +for and, if found, merged in the following order: + - /usr/share/unl0kr.conf + - /usr/share/unl0kr.conf.d/ (alphabetically) + - /etc/unl0kr.conf - /etc/unl0kr.conf.d/ (alphabetically) - Override files (in supplied order) diff --git a/unl0kr/main.c b/unl0kr/main.c index 3c9f1ce02388d1d28cf1c5babac4f88a205453fc..58c5133a47833fcd5b3d9a669b0d6e24a014766e 100644 --- a/unl0kr/main.c +++ b/unl0kr/main.c @@ -381,6 +381,8 @@ int main(int argc, char *argv[]) { /* Parse config files */ ul_config_init_opts(&conf_opts); + ul_config_parse_file("/usr/share/unl0kr.conf", &conf_opts); + ul_config_parse_directory("/usr/share/unl0kr.conf.d", &conf_opts); ul_config_parse_file("/etc/unl0kr.conf", &conf_opts); ul_config_parse_directory("/etc/unl0kr.conf.d", &conf_opts); ul_config_parse_files(cli_opts.config_files, cli_opts.num_config_files, &conf_opts);