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);