package versions import ( "gogs.inhome.blapointe.com/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 }