package versions import ( "fmt" "local/notes-server/config" "os/exec" "time" ) type Versions struct { } func New() (*Versions, error) { v := &Versions{} v.cmd("git", "init") return v, nil } func (v *Versions) Gitmmit() error { if err := v.AddAll(); err != nil { return fmt.Errorf("cannot add all: %v", err) } if err := v.Commit(); err != nil { return fmt.Errorf("cannot commit: %v", err) } return nil } func (v *Versions) AddAll() error { return v.cmd("git", "add", "-A", ":/") } func (v *Versions) Commit() error { return v.cmd("git", "commit", "-m", time.Now().String()) } func (v *Versions) cmd(cmd string, args ...string) error { command := exec.Command(cmd, args...) command.Dir = config.Root _, err := command.CombinedOutput() return err }