Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/libgit2/git2go/settings.go')
-rw-r--r--vendor/github.com/libgit2/git2go/settings.go102
1 files changed, 102 insertions, 0 deletions
diff --git a/vendor/github.com/libgit2/git2go/settings.go b/vendor/github.com/libgit2/git2go/settings.go
new file mode 100644
index 000000000..c7f1850ef
--- /dev/null
+++ b/vendor/github.com/libgit2/git2go/settings.go
@@ -0,0 +1,102 @@
+package git
+
+/*
+#include <git2.h>
+
+int _go_git_opts_get_search_path(int level, git_buf *buf)
+{
+ return git_libgit2_opts(GIT_OPT_GET_SEARCH_PATH, level, buf);
+}
+
+int _go_git_opts_set_search_path(int level, const char *path)
+{
+ return git_libgit2_opts(GIT_OPT_SET_SEARCH_PATH, level, path);
+}
+
+int _go_git_opts_set_size_t(int opt, size_t val)
+{
+ return git_libgit2_opts(opt, val);
+}
+
+int _go_git_opts_get_size_t(int opt, size_t *val)
+{
+ return git_libgit2_opts(opt, val);
+}
+*/
+import "C"
+import (
+ "runtime"
+ "unsafe"
+)
+
+func SearchPath(level ConfigLevel) (string, error) {
+ var buf C.git_buf
+ defer C.git_buf_free(&buf)
+
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ err := C._go_git_opts_get_search_path(C.int(level), &buf)
+ if err < 0 {
+ return "", MakeGitError(err)
+ }
+
+ return C.GoString(buf.ptr), nil
+}
+
+func SetSearchPath(level ConfigLevel, path string) error {
+ cpath := C.CString(path)
+ defer C.free(unsafe.Pointer(cpath))
+
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ err := C._go_git_opts_set_search_path(C.int(level), cpath)
+ if err < 0 {
+ return MakeGitError(err)
+ }
+
+ return nil
+}
+
+func MwindowSize() (int, error) {
+ return getSizet(C.GIT_OPT_GET_MWINDOW_SIZE)
+}
+
+func SetMwindowSize(size int) error {
+ return setSizet(C.GIT_OPT_SET_MWINDOW_SIZE, size)
+}
+
+func MwindowMappedLimit() (int, error) {
+ return getSizet(C.GIT_OPT_GET_MWINDOW_MAPPED_LIMIT)
+}
+
+func SetMwindowMappedLimit(size int) error {
+ return setSizet(C.GIT_OPT_SET_MWINDOW_MAPPED_LIMIT, size)
+}
+
+func getSizet(opt C.int) (int, error) {
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ var val C.size_t
+ err := C._go_git_opts_get_size_t(opt, &val)
+ if err < 0 {
+ return 0, MakeGitError(err)
+ }
+
+ return int(val), nil
+}
+
+func setSizet(opt C.int, val int) error {
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ cval := C.size_t(val)
+ err := C._go_git_opts_set_size_t(opt, cval)
+ if err < 0 {
+ return MakeGitError(err)
+ }
+
+ return nil
+}