summaryrefslogtreecommitdiff
path: root/src/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/config.c')
-rw-r--r--src/config.c56
1 files changed, 22 insertions, 34 deletions
diff --git a/src/config.c b/src/config.c
index 1d369c4..a042102 100644
--- a/src/config.c
+++ b/src/config.c
@@ -5,13 +5,14 @@
#include <stdlib.h>
#include <string.h>
+#include <strings.h>
#include <unistd.h>
/******************************************************************************/
/* Type conversions */
-inline const char *archiving_to_string(enum sk_archiving_mode a) {
+const char *sk_archiving_mode_to_string(enum sk_archiving_mode a) {
switch (a) {
case SK_ARCHIVING_NONE:
return "none";
@@ -28,19 +29,15 @@ inline const char *archiving_to_string(enum sk_archiving_mode a) {
}
}
-inline enum sk_colour_output string_to_colour_output(const char *in) {
- if (!strcmp(in, "always")) {
- return SK_COLOUR_ALWAYS;
- } else if (!strcmp(in, "never")) {
- return SK_COLOUR_NEVER;
- } else if (!strcmp(in, "auto")) {
- return SK_COLOUR_AUTO;
- } else {
- return SK_COLOUR_NEVER;
+enum sk_archiving_mode sk_archiving_mode_of_string(const char *s) {
+ for (enum sk_archiving_mode a = SK_ARCHIVING_MIN; a <= SK_ARCHIVING_MAX; ++a) {
+ if (!strcasecmp(s, sk_archiving_mode_to_string(a)))
+ return a;
}
+ return SK_ARCHIVING_NONE;
}
-inline const char *colour_output_to_string(enum sk_colour_output c) {
+const char *sk_colour_output_to_string(enum sk_colour_output c) {
switch (c) {
case SK_COLOUR_NEVER:
return "never";
@@ -53,24 +50,15 @@ inline const char *colour_output_to_string(enum sk_colour_output c) {
}
}
-inline const char *verbosity_to_string(enum sk_log_verb v) {
- switch (v) {
- case LOG_OFF:
- return "off";
- case LOG_ERROR:
- return "error";
- case LOG_WARNING:
- return "warning";
- case LOG_INFO:
- return "info";
- case LOG_VERBOSE:
- return "verbose";
- case LOG_DEBUG:
- return "debug";
- case LOG_TRACE:
- return "trace";
- default:
- return NULL;
+enum sk_colour_output sk_colour_output_of_string(const char *s) {
+ if (!strcasecmp(s, "always")) {
+ return SK_COLOUR_ALWAYS;
+ } else if (!strcasecmp(s, "never")) {
+ return SK_COLOUR_NEVER;
+ } else if (!strcasecmp(s, "auto")) {
+ return SK_COLOUR_AUTO;
+ } else {
+ return SK_COLOUR_NEVER;
}
}
@@ -90,7 +78,7 @@ static struct sk_config sk_config_defaults = {
.remote_exec = "ssh -o User=root",
.inventory_dir = "manifest/inventory",
.jobs = 1,
- .verbosity_level = LOG_INFO,
+ .verbosity_level = SK_LOG_INFO,
.archiving = SK_ARCHIVING_NONE,
.save_output_streams = true,
.log_timestamp = false
@@ -159,15 +147,15 @@ void sk_config_print(struct sk_config *config, FILE *outstream) {
config->global.remote_shell,
config->global.cache_path_pattern,
conf_dir_str,
- colour_output_to_string(config->global.coloured_output),
+ sk_colour_output_to_string(config->global.coloured_output),
config->global.init_manifest,
config->global.out_path,
config->global.remote_out_path,
config->global.remote_exec,
config->global.inventory_dir,
config->global.jobs,
- verbosity_to_string(config->global.verbosity_level),
- archiving_to_string(config->global.archiving),
+ sk_log_level_to_string(config->global.verbosity_level),
+ sk_archiving_mode_to_string(config->global.archiving),
boolstr(config->global.save_output_streams),
boolstr(config->global.log_timestamp)
);
@@ -263,7 +251,7 @@ inline searchpath_t _searchpath_conf(const char *in) {
return (searchpath_t)buf;
}
-#define _colour_conf(c) string_to_colour_output(c)
+#define _colour_conf(c) sk_colour_output_of_string(c)
/* if the envonment variable is set, always disable coloured output, not matter
* its value */