1
1
mirror of https://github.com/cooperspencer/gickup synced 2024-10-18 13:48:07 +02:00
gickup/gitcmd/gitcmd.go
Andreas Wachter beae85c182
implemented git lfs (#160)
* implemented git lfs

* removed arm/v6 from docker builds

* add lfs to example
2023-07-18 10:56:43 +02:00

48 lines
759 B
Go

package gitcmd
import (
"errors"
"os/exec"
)
type GitCmd struct {
CMD string
}
func New() (GitCmd, error) {
cmd := exec.Command("git", "lfs")
err := cmd.Run()
if err != nil {
return GitCmd{}, errors.New("git lfs is not installed")
}
return GitCmd{CMD: "git"}, nil
}
func (g GitCmd) Clone(url, path string, bare bool) error {
cmd := exec.Command(g.CMD, "clone", url, path)
if bare {
cmd.Args = append(cmd.Args, "--bare")
}
err := cmd.Run()
if err != nil {
return err
}
return nil
}
func (g GitCmd) Pull(bare bool) error {
var args = []string{}
if bare {
args = []string{"fetch", "--all"}
} else {
args = []string{"pull"}
}
cmd := exec.Command(g.CMD, args...)
err := cmd.Run()
if err != nil {
return err
}
return nil
}