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 'cmd/gitaly-git2go/command/commit/validate.go')
-rw-r--r--cmd/gitaly-git2go/command/commit/validate.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/cmd/gitaly-git2go/command/commit/validate.go b/cmd/gitaly-git2go/command/commit/validate.go
new file mode 100644
index 000000000..8854cdbbe
--- /dev/null
+++ b/cmd/gitaly-git2go/command/commit/validate.go
@@ -0,0 +1,48 @@
+// +build static,system_libgit2
+
+package commit
+
+import (
+ "os"
+
+ git "github.com/libgit2/git2go/v30"
+ "gitlab.com/gitlab-org/gitaly/internal/git2go"
+)
+
+func validateFileExists(index *git.Index, path string) error {
+ if _, err := index.Find(path); err != nil {
+ if git.IsErrorCode(err, git.ErrNotFound) {
+ return git2go.FileNotFoundError(path)
+ }
+
+ return err
+ }
+
+ return nil
+}
+
+func validateFileDoesNotExist(index *git.Index, path string) error {
+ _, err := index.Find(path)
+ if err == nil {
+ return git2go.FileExistsError(path)
+ }
+
+ if !git.IsErrorCode(err, git.ErrNotFound) {
+ return err
+ }
+
+ return nil
+}
+
+func validateDirectoryDoesNotExist(index *git.Index, path string) error {
+ _, err := index.FindPrefix(path + string(os.PathSeparator))
+ if err == nil {
+ return git2go.DirectoryExistsError(path)
+ }
+
+ if !git.IsErrorCode(err, git.ErrNotFound) {
+ return err
+ }
+
+ return nil
+}