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