2019-11-21 13:53:04.526575 -0700 MST m=+0.013733497

master
Bel LaPointe 2019-11-21 13:53:04 -07:00
parent b73a962556
commit 217a221cf4
3 changed files with 73 additions and 53 deletions

67
versions/.versions.go Normal file
View File

@ -0,0 +1,67 @@
package versions
import (
"local/notes-server/config"
"time"
git "gopkg.in/src-d/go-git.v4"
"gopkg.in/src-d/go-git.v4/plumbing/object"
)
type Versions struct {
repo *git.Repository
}
func New() (*Versions, error) {
repo, err := git.PlainInit(config.Root, false)
if err != nil {
repo, err = git.PlainOpen(config.Root)
}
return &Versions{
repo: repo,
}, err
}
func (v *Versions) Gitmmit() error {
if err := v.AddAll(); err != nil {
return err
}
if err := v.Commit(); err != nil {
return err
}
return nil
}
func (v *Versions) AddAll() error {
worktree, err := v.worktree()
if err != nil {
return err
}
for _, path := range []string{".", "./*", "./**", "/", "/**", "/*"} {
if err := worktree.AddGlob(path); err != nil {
return err
}
}
return nil
}
func (v *Versions) Commit() error {
worktree, err := v.worktree()
if err != nil {
return err
}
opts := &git.CommitOptions{Author: &object.Signature{}}
_, err = worktree.Commit(time.Now().String(), opts)
return err
}
func (v *Versions) worktree() (*git.Worktree, error) {
worktree, err := v.repo.Worktree()
if err != nil {
return nil, err
}
return worktree, nil
}

View File

@ -1,25 +1,15 @@
package versions package versions
import ( import (
"local/notes-server/config" "os/exec"
"time" "time"
git "gopkg.in/src-d/go-git.v4"
"gopkg.in/src-d/go-git.v4/plumbing/object"
) )
type Versions struct { type Versions struct {
repo *git.Repository
} }
func New() (*Versions, error) { func New() (*Versions, error) {
repo, err := git.PlainInit(config.Root, false) return &Versions{}, nil
if err != nil {
repo, err = git.PlainOpen(config.Root)
}
return &Versions{
repo: repo,
}, err
} }
func (v *Versions) Gitmmit() error { func (v *Versions) Gitmmit() error {
@ -33,35 +23,11 @@ func (v *Versions) Gitmmit() error {
} }
func (v *Versions) AddAll() error { func (v *Versions) AddAll() error {
worktree, err := v.worktree() cmd := exec.Command("git", "add", "-A", ":/")
if err != nil { return cmd.Run()
return err
}
for _, path := range []string{".", "./*", "./**", "/", "/**", "/*"} {
if err := worktree.AddGlob(path); err != nil {
return err
}
}
return nil
} }
func (v *Versions) Commit() error { func (v *Versions) Commit() error {
worktree, err := v.worktree() cmd := exec.Command("git", "commit", "-m", time.Now().String())
if err != nil { return cmd.Run()
return err
}
opts := &git.CommitOptions{Author: &object.Signature{}}
_, err = worktree.Commit(time.Now().String(), opts)
return err
}
func (v *Versions) worktree() (*git.Worktree, error) {
worktree, err := v.repo.Worktree()
if err != nil {
return nil, err
}
return worktree, nil
} }

View File

@ -26,27 +26,15 @@ func TestVersionsHappy(t *testing.T) {
t.Error(err) t.Error(err)
} }
if _, err := v.repo.Head(); err == nil {
t.Error(err)
}
if err := v.AddAll(); err != nil { if err := v.AddAll(); err != nil {
t.Error(err) t.Error(err)
} }
if _, err := v.repo.Head(); err == nil {
t.Error(err)
}
if err := v.Commit(); err != nil { if err := v.Commit(); err != nil {
t.Error(err) t.Error(err)
} }
if _, err := v.repo.Head(); err != nil {
t.Error(err)
}
if err := v.Gitmmit(); err != nil { if err := v.Gitmmit(); err != nil {
t.Error(err) t.Error(err)
} }
if _, err := v.repo.Head(); err != nil {
t.Error(err)
}
} }
func TestVersionsBad(t *testing.T) { func TestVersionsBad(t *testing.T) {
@ -74,5 +62,4 @@ I'm a doc
t.Fatal(err) t.Fatal(err)
} }
t.Log(v) t.Log(v)
t.Log(v.repo.Config())
} }