aboutsummaryrefslogtreecommitdiff
path: root/include/conf.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/conf.h')
-rw-r--r--include/conf.h54
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