diff options
| author | Carlos Martín Nieto <[email protected]> | 2016-03-07 11:17:10 +0100 |
|---|---|---|
| committer | Carlos Martín Nieto <[email protected]> | 2016-03-07 11:22:53 +0100 |
| commit | 2ae7d13ba1037c7fa579fc52263ea280b37244ea (patch) | |
| tree | f2509df04ec4e6187943aad83ea672e660102a8b /ignore.go | |
| parent | fa644d2fc9efa3baee93b525212d76dfa17a5db5 (diff) | |
| parent | e095c85fd06b5820d2f0098ff3e66b266553dbd5 (diff) | |
Merge branch 'next'
Diffstat (limited to 'ignore.go')
| -rw-r--r-- | ignore.go | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/ignore.go b/ignore.go new file mode 100644 index 0000000..6b12348 --- /dev/null +++ b/ignore.go @@ -0,0 +1,51 @@ +package git + +/* +#include <git2.h> +*/ +import "C" +import ( + "runtime" + "unsafe" +) + +func (v *Repository) AddIgnoreRule(rules string) error { + crules := C.CString(rules) + defer C.free(unsafe.Pointer(crules)) + + runtime.LockOSThread() + defer runtime.UnlockOSThread() + + ret := C.git_ignore_add_rule(v.ptr, crules) + if ret < 0 { + return MakeGitError(ret) + } + return nil +} + +func (v *Repository) ClearInternalIgnoreRules() error { + runtime.LockOSThread() + defer runtime.UnlockOSThread() + + ret := C.git_ignore_clear_internal_rules(v.ptr) + if ret < 0 { + return MakeGitError(ret) + } + return nil +} + +func (v *Repository) IsPathIgnored(path string) (bool, error) { + var ignored C.int + + cpath := C.CString(path) + defer C.free(unsafe.Pointer(cpath)) + + runtime.LockOSThread() + defer runtime.UnlockOSThread() + + ret := C.git_ignore_path_is_ignored(&ignored, v.ptr, cpath) + if ret < 0 { + return false, MakeGitError(ret) + } + return ignored == 1, nil +} |
