aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2019-03-01 23:17:57 +0100
committerGitHub <noreply@github.com>2019-03-01 23:17:57 +0100
commit7260ca05bc3588c0572887a7d8f1b897c7fc13da (patch)
tree66854358df3cb9de651f7688556ec5a4b8ab1868 /util
parent0aefae6fcca5786f2c898029c3d6282f760f2c63 (diff)
parentb6bed784e5664819250aac20b2b9690879ee6ab1 (diff)
downloadgit-bug-7260ca05bc3588c0572887a7d8f1b897c7fc13da.tar.gz
Merge pull request #89 from MichaelMure/identity
WIP identity in git
Diffstat (limited to 'util')
-rw-r--r--util/git/hash.go2
-rw-r--r--util/test/repo.go79
-rw-r--r--util/text/text.go7
-rw-r--r--util/timestamp/timestamp.go9
4 files changed, 89 insertions, 8 deletions
diff --git a/util/git/hash.go b/util/git/hash.go
index 401e6edc..d9160d75 100644
--- a/util/git/hash.go
+++ b/util/git/hash.go
@@ -30,7 +30,7 @@ func (h *Hash) UnmarshalGQL(v interface{}) error {
// MarshalGQL implement the Marshaler interface for gqlgen
func (h Hash) MarshalGQL(w io.Writer) {
- w.Write([]byte(`"` + h.String() + `"`))
+ _, _ = w.Write([]byte(`"` + h.String() + `"`))
}
// IsValid tell if the hash is valid
diff --git a/util/test/repo.go b/util/test/repo.go
new file mode 100644
index 00000000..c5d3c000
--- /dev/null
+++ b/util/test/repo.go
@@ -0,0 +1,79 @@
+package test
+
+import (
+ "io/ioutil"
+ "log"
+ "os"
+ "testing"
+
+ "github.com/MichaelMure/git-bug/repository"
+)
+
+func CreateRepo(bare bool) *repository.GitRepo {
+ dir, err := ioutil.TempDir("", "")
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // fmt.Println("Creating repo:", dir)
+
+ var creator func(string) (*repository.GitRepo, error)
+
+ if bare {
+ creator = repository.InitBareGitRepo
+ } else {
+ creator = repository.InitGitRepo
+ }
+
+ repo, err := creator(dir)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ if err := repo.StoreConfig("user.name", "testuser"); err != nil {
+ log.Fatal("failed to set user.name for test repository: ", err)
+ }
+ if err := repo.StoreConfig("user.email", "testuser@example.com"); err != nil {
+ log.Fatal("failed to set user.email for test repository: ", err)
+ }
+
+ return repo
+}
+
+func CleanupRepo(repo repository.Repo) error {
+ path := repo.GetPath()
+ // fmt.Println("Cleaning repo:", path)
+ return os.RemoveAll(path)
+}
+
+func SetupReposAndRemote(t testing.TB) (repoA, repoB, remote *repository.GitRepo) {
+ repoA = CreateRepo(false)
+ repoB = CreateRepo(false)
+ remote = CreateRepo(true)
+
+ remoteAddr := "file://" + remote.GetPath()
+
+ err := repoA.AddRemote("origin", remoteAddr)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ err = repoB.AddRemote("origin", remoteAddr)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ return repoA, repoB, remote
+}
+
+func CleanupRepos(repoA, repoB, remote *repository.GitRepo) {
+ if err := CleanupRepo(repoA); err != nil {
+ log.Println(err)
+ }
+ if err := CleanupRepo(repoB); err != nil {
+ log.Println(err)
+ }
+ if err := CleanupRepo(remote); err != nil {
+ log.Println(err)
+ }
+}
diff --git a/util/text/text.go b/util/text/text.go
index 81cc870b..87db8c30 100644
--- a/util/text/text.go
+++ b/util/text/text.go
@@ -323,10 +323,3 @@ func splitWord(word string, length int) (string, string) {
return string(result), string(leftover)
}
-
-func minInt(a, b int) int {
- if a > b {
- return b
- }
- return a
-}
diff --git a/util/timestamp/timestamp.go b/util/timestamp/timestamp.go
new file mode 100644
index 00000000..4f587cb4
--- /dev/null
+++ b/util/timestamp/timestamp.go
@@ -0,0 +1,9 @@
+package timestamp
+
+import "time"
+
+type Timestamp int64
+
+func (t Timestamp) Time() time.Time {
+ return time.Unix(int64(t), 0)
+}