Move the settings into the main git2go
This commit is contained in:
parent
aabeb7f585
commit
12a3a1e05c
7
Makefile
7
Makefile
|
@ -2,12 +2,9 @@ default: test
|
||||||
|
|
||||||
build-libgit2:
|
build-libgit2:
|
||||||
./script/build-libgit2-static.sh
|
./script/build-libgit2-static.sh
|
||||||
cat ./vendor/libgit2/libgit2.pc
|
|
||||||
cat ./vendor/install/lib/pkgconfig/libgit2.pc
|
|
||||||
|
|
||||||
test: install build-libgit2
|
test: build-libgit2
|
||||||
./script/with-static.sh go test
|
./script/with-static.sh go test ./...
|
||||||
./script/with-less-static.sh go test ./settings
|
|
||||||
|
|
||||||
install: build-libgit2
|
install: build-libgit2
|
||||||
./script/with-static.sh go install ./...
|
./script/with-static.sh go install ./...
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
export INSTALL_LOCATION=$PWD/vendor/install
|
|
||||||
export PKG_CONFIG_PATH=$INSTALL_LOCATION/lib/pkgconfig
|
|
||||||
|
|
||||||
export PCFILE="$PWD/vendor/libgit2/libgit2.pc"
|
|
||||||
|
|
||||||
export CGO_LDFLAGS="$(pkg-config --static --libs $PCFILE)"
|
|
||||||
export CGO_CFLAGS="$(pkg-config --static --cflags $PCFILE)"
|
|
||||||
|
|
||||||
$@
|
|
|
@ -1,4 +1,4 @@
|
||||||
package settings
|
package git
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#include <git2.h>
|
#include <git2.h>
|
||||||
|
@ -22,20 +22,14 @@ int _go_git_opts_get_size_t(int opt, size_t *val)
|
||||||
{
|
{
|
||||||
return git_libgit2_opts(opt, val);
|
return git_libgit2_opts(opt, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
*/
|
*/
|
||||||
import "C"
|
import "C"
|
||||||
import (
|
import (
|
||||||
"runtime"
|
"runtime"
|
||||||
"unsafe"
|
"unsafe"
|
||||||
"github.com/libgit2/git2go"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func MakeGitError(err C.int) error {
|
func SearchPath(level ConfigLevel) (string, error) {
|
||||||
return git.MakeGitError2(int(err))
|
|
||||||
}
|
|
||||||
|
|
||||||
func SearchPath(level git.ConfigLevel) (string, error) {
|
|
||||||
var buf C.git_buf
|
var buf C.git_buf
|
||||||
defer C.git_buf_free(&buf)
|
defer C.git_buf_free(&buf)
|
||||||
|
|
||||||
|
@ -50,7 +44,7 @@ func SearchPath(level git.ConfigLevel) (string, error) {
|
||||||
return C.GoString(buf.ptr), nil
|
return C.GoString(buf.ptr), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetSearchPath(level git.ConfigLevel, path string) error {
|
func SetSearchPath(level ConfigLevel, path string) error {
|
||||||
cpath := C.CString(path)
|
cpath := C.CString(path)
|
||||||
defer C.free(unsafe.Pointer(cpath))
|
defer C.free(unsafe.Pointer(cpath))
|
||||||
|
|
||||||
|
@ -65,32 +59,6 @@ func SetSearchPath(level git.ConfigLevel, path string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
func MwindowSize() (int, error) {
|
func MwindowSize() (int, error) {
|
||||||
return getSizet(C.GIT_OPT_GET_MWINDOW_SIZE)
|
return getSizet(C.GIT_OPT_GET_MWINDOW_SIZE)
|
||||||
}
|
}
|
||||||
|
@ -106,3 +74,29 @@ func MwindowMappedLimit() (int, error) {
|
||||||
func SetMwindowMappedLimit(size int) error {
|
func SetMwindowMappedLimit(size int) error {
|
||||||
return setSizet(C.GIT_OPT_SET_MWINDOW_MAPPED_LIMIT, size)
|
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
|
||||||
|
}
|
|
@ -1,21 +1,19 @@
|
||||||
package settings
|
package git
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
"runtime"
|
|
||||||
"github.com/libgit2/git2go"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type pathPair struct {
|
type pathPair struct {
|
||||||
Level git.ConfigLevel
|
Level ConfigLevel
|
||||||
Path string
|
Path string
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSearchPath(t *testing.T) {
|
func TestSearchPath(t *testing.T) {
|
||||||
paths := []pathPair{
|
paths := []pathPair{
|
||||||
pathPair{git.ConfigLevelSystem, "/tmp/system"},
|
pathPair{ConfigLevelSystem, "/tmp/system"},
|
||||||
pathPair{git.ConfigLevelGlobal, "/tmp/global"},
|
pathPair{ConfigLevelGlobal, "/tmp/global"},
|
||||||
pathPair{git.ConfigLevelXDG, "/tmp/xdg"},
|
pathPair{ConfigLevelXDG, "/tmp/xdg"},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, pair := range paths {
|
for _, pair := range paths {
|
||||||
|
@ -50,17 +48,3 @@ func TestMmapSizes(t *testing.T) {
|
||||||
t.Fatal("Sizes don't match")
|
t.Fatal("Sizes don't match")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkFatal(t *testing.T, err error) {
|
|
||||||
if err == nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// The failure happens at wherever we were called, not here
|
|
||||||
_, file, line, ok := runtime.Caller(1)
|
|
||||||
if !ok {
|
|
||||||
t.Fatal()
|
|
||||||
}
|
|
||||||
|
|
||||||
t.Fatalf("Fail at %v:%v; %v", file, line, err)
|
|
||||||
}
|
|
Loading…
Reference in New Issue