55 lines
1.1 KiB
Go
Executable File
55 lines
1.1 KiB
Go
Executable File
package versions
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"gitea.inhome.blapointe.com/local/notes-server/config"
|
|
"log"
|
|
"os"
|
|
"os/exec"
|
|
"path"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
type Versions struct {
|
|
}
|
|
|
|
func New() (*Versions, error) {
|
|
v := &Versions{}
|
|
v.cmd("git", "init")
|
|
v.cmd("git", "config", "user.email", "user@user.user")
|
|
v.cmd("git", "config", "user.name", "user")
|
|
s := getScript()
|
|
err := ioutil.WriteFile(path.Join(config.Root, "./.git/hooks/pre-commit"), []byte(s), os.ModePerm)
|
|
return v, err
|
|
}
|
|
|
|
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
|
|
out, err := command.CombinedOutput()
|
|
if err != nil {
|
|
log.Println(cmd, args, ":", strings.TrimSpace(string(out)))
|
|
}
|
|
return err
|
|
}
|