diff options
Diffstat (limited to 'include/conf.h')
-rw-r--r-- | include/conf.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/include/conf.h b/include/conf.h new file mode 100644 index 0000000..e1ab93a --- /dev/null +++ b/include/conf.h @@ -0,0 +1,54 @@ +#ifndef SPM_CONF_H +#define SPM_CONF_H + +#define CONFIG_BUFFER_SIZE 1024 +#define PKG_DIR SPM_GLOBAL.package_dir +#define TMP_DIR SPM_GLOBAL.tmp_dir + +typedef struct { + char *key; + char *value; + size_t key_length; + size_t value_length; +} ConfigItem; + +typedef struct { + char *binpath; + char *includepath; + char *libpath; + char *datapath; + char *manpath; +} SPM_Hierarchy; + +typedef struct { + char *package_dir; + char *tmp_dir; + char *package_manifest; + char *mirror_config; + char **mirror_list; + char *repo_target; + char *user_config_basedir; + char *user_config_file; + int verbose; + ConfigItem **config; + struct utsname sysinfo; + SPM_Hierarchy fs; +} spm_vars; + +ConfigItem **config_read(const char *filename); +ConfigItem *config_get(ConfigItem **item, const char *key); +void config_free(ConfigItem **item); +void config_test(void); + +char *get_user_conf_dir(void); +char *get_user_config_file(void); +char *get_user_tmp_dir(void); +char *get_user_package_dir(void); +char *get_package_manifest(void); + +void init_config_global(void); +void free_global_config(void); +void show_global_config(void); +void check_runtime_environment(void); + +#endif //SPM_CONF_H |