1 module git2.config;
2 
3 import git2.common;
4 import git2.types;
5 import git2.util;
6 
7 extern (C):
8 
9 enum git_config_level_t {
10 	GIT_CONFIG_LEVEL_SYSTEM = 1,
11 	GIT_CONFIG_LEVEL_XDG = 2,
12 	GIT_CONFIG_LEVEL_GLOBAL = 3,
13 	GIT_CONFIG_LEVEL_LOCAL = 4,
14 	GIT_CONFIG_LEVEL_APP = 5,
15 	GIT_CONFIG_HIGHEST_LEVEL = -1,
16 }
17 mixin _ExportEnumMembers!git_config_level_t;
18 
19 struct git_config_entry {
20 	const(char)* name;
21 	const(char)* value;
22 	git_config_level_t level;
23 }
24 
25 alias git_config_foreach_cb = int function(const(git_config_entry)*, void *);
26 
27 enum git_cvar_t {
28 	GIT_CVAR_FALSE = 0,
29 	GIT_CVAR_TRUE = 1,
30 	GIT_CVAR_INT32,
31 	GIT_CVAR_STRING
32 }
33 mixin _ExportEnumMembers!git_cvar_t;
34 
35 struct git_cvar_map {
36 	git_cvar_t cvar_type;
37 	const(char)* str_match;
38 	int map_value;
39 }
40 
41 int git_config_find_global(char *out_, size_t length);
42 int git_config_find_xdg(char *out_, size_t length);
43 int git_config_find_system(char *out_, size_t length);
44 int git_config_open_default(git_config **out_);
45 int git_config_new(git_config **out_);
46 int git_config_add_file_ondisk(
47 	git_config *cfg,
48 	const(char)* path,
49 	git_config_level_t level,
50 	int force);
51 int git_config_open_ondisk(git_config **out_, const(char)* path);
52 int git_config_open_level(
53 	git_config **out_,
54 	const(git_config)* parent,
55 	git_config_level_t level);
56 int git_config_open_global(git_config **out_, git_config *config);
57 int git_config_refresh(git_config *cfg);
58 void git_config_free(git_config *cfg);
59 int git_config_get_entry(
60 	const(git_config_entry)** out_,
61 	const(git_config)* cfg,
62 	const(char)* name);
63 int git_config_get_int32(int32_t *out_, const(git_config)* cfg, const(char)* name);
64 int git_config_get_int64(int64_t *out_, const(git_config)* cfg, const(char)* name);
65 int git_config_get_bool(int *out_, const(git_config)* cfg, const(char)* name);
66 int git_config_get_string(const(char)** out_, const(git_config)* cfg, const(char)* name);
67 int git_config_get_multivar(const(git_config)* cfg, const(char)* name, const(char)* regexp, git_config_foreach_cb callback, void *payload);
68 int git_config_set_int32(git_config *cfg, const(char)* name, int32_t value);
69 int git_config_set_int64(git_config *cfg, const(char)* name, int64_t value);
70 int git_config_set_bool(git_config *cfg, const(char)* name, int value);
71 int git_config_set_string(git_config *cfg, const(char)* name, const(char)* value);
72 int git_config_set_multivar(git_config *cfg, const(char)* name, const(char)* regexp, const(char)* value);
73 int git_config_delete_entry(git_config *cfg, const(char)* name);
74 int git_config_foreach(
75 	const(git_config)* cfg,
76 	git_config_foreach_cb callback,
77 	void *payload);
78 int git_config_foreach_match(
79 	const(git_config)* cfg,
80 	const(char)* regexp,
81 	git_config_foreach_cb callback,
82 	void *payload);
83 int git_config_get_mapped(
84 	int *out_,
85 	const(git_config)* cfg,
86 	const(char)* name,
87 	const(git_cvar_map)* maps,
88 	size_t map_n);
89 int git_config_lookup_map_value(
90 	int *out_,
91 	const(git_cvar_map)* maps,
92 	size_t map_n,
93 	const(char)* value);
94 int git_config_parse_bool(int *out_, const(char)* value);
95 int git_config_parse_int32(int32_t *out_, const(char)* value);
96 int git_config_parse_int64(int64_t *out_, const(char)* value);