import nimgit2 import types, free proc config* (repo: GitRepository): GitConfig = let error = git_repository_config_snapshot(addr result, repo) if error != 0: free(result) raise newException(CatchableError, "Load config failed: " & $error.getResultCode) proc get* (config: GitConfig, name: string): string = var value: cstring let error = git_config_get_string(addr value, config, cstring(name)) if error != 0: return "" result = $value proc getString* (config: GitConfig, name: string): string = var value: cstring let error = git_config_get_string(addr value, config, cstring(name)) if error != 0: raise newException(CatchableError, "Config-value lookup failed: " & $error.getResultCode) result = $value proc getBool* (config: GitConfig, name: string): bool = var value: cint let error = git_config_get_bool(addr value, config, cstring(name)) if error != 0: raise newException(CatchableError, "Config-value lookup failed: " & $error.getResultCode) result = cast[bool](value) proc getInt* (config: GitConfig, name: string): int64 = let error = git_config_get_int64(addr result, config, cstring(name)) if error != 0: raise newException(CatchableError, "Config-value lookup failed: " & $error.getResultCode)