From 2a9a76b3e7ebfa4c56a0f37074e90bdb7a90533a Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Sat, 5 Jun 2021 20:05:40 -0400 Subject: Move the config option stuff into `config.h`. --- config.c | 31 +------------------------------ config.h | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 30 deletions(-) create mode 100644 config.h diff --git a/config.c b/config.c index 15689a6..fc5f6bd 100644 --- a/config.c +++ b/config.c @@ -2,36 +2,7 @@ #include #include #include - -typedef struct config_opt config_opt; -typedef enum config_type config_type; -typedef void (*config_func)(config_opt *, void *); - -enum config_type { - TYPE_INT, - TYPE_STRING, - TYPE_FLOAT, - TYPE_BOOL, -}; - - -struct config_opt { - const char *name; /* Name of the config option. */ - const char *desc; /* Description of the config option. */ - config_type type; /* Datatype of the config option. */ - config_func func; /* Function of the config option. */ -}; - -static const config_opt config_opts[] = { - /* {"name", "desc", type, &func} */ - {"git-root", "Root of git server (can also be a url).", TYPE_STRING, &get_git_root}, - {"socket-type", "Socket type to use (options: unix, network. default: network).", TYPE_STRING, &get_sock_type}, - {"socket", "Path, IP address, or domain name of socket.", TYPE_STRING, &get_sock}, - {"port", "Port to listen on (network socket only).", TYPE_INT, &get_sock_port}, - {"merge-type", "Type of merge (options: 0 = Merge individually, 1 = Merge into one).", TYPE_INT, &get_merge_type}, - {"pr-root", "Directory to store pull requests in.", TYPE_STRING, &pr_root}, - {"key-file", "Path to file containing gpg/pgp public keys of each maintainer.", TYPE_STRING, &get_key_path}, -}; +#include "config.h" char *read_file(const char *filename, long *size) { /* Open the file. */ diff --git a/config.h b/config.h new file mode 100644 index 0000000..9993680 --- /dev/null +++ b/config.h @@ -0,0 +1,35 @@ +#ifndef CONFIG_H +#define CONFIG_H + +typedef struct config_opt config_opt; +typedef enum config_type config_type; +typedef void (*config_func)(config_opt *, void *); + +enum config_type { + TYPE_INT, + TYPE_STRING, + TYPE_FLOAT, + TYPE_BOOL, +}; + + +struct config_opt { + const char *name; /* Name of the config option. */ + const char *desc; /* Description of the config option. */ + config_type type; /* Datatype of the config option. */ + config_func func; /* Function of the config option. */ +}; + +static const config_opt config_opts[] = { + /* {"name", "desc", type, &func} */ + {"git-root", "Root of git server (can also be a url).", TYPE_STRING, &get_git_root}, + {"socket-type", "Socket type to use (options: unix, network. default: network).", TYPE_STRING, &get_sock_type}, + {"socket", "Path, IP address, or domain name of socket.", TYPE_STRING, &get_sock}, + {"port", "Port to listen on (network socket only).", TYPE_INT, &get_sock_port}, + {"merge-type", "Type of merge (options: 0 = Merge individually, 1 = Merge into one).", TYPE_INT, &get_merge_type}, + {"pr-root", "Directory to store pull requests in.", TYPE_STRING, &pr_root}, + {"key-file", "Path to file containing gpg/pgp public keys of each maintainer.", TYPE_STRING, &get_key_path}, +}; + +extern config *parse_config(const char *filename); +#endif -- cgit v1.2.3-13-gbd6f