in internal/utils/git.go [45:77]
func (r *Repo) Clone(force bool) error {
var options git.CloneOptions
var clone bool = false
// set options
options.URL = r.Url
if r.Ref != "" {
options.ReferenceName = plumbing.ReferenceName(r.Ref)
}
// see if clone already exists
if err := FileExists(r.Dst); err != nil {
if force {
clone = true
}
} else {
clone = true
}
if clone {
// remove existing clone
if err := RemoveDir(r.Dst); err != nil {
return err
}
// do what we came here to do
if _, err := git.PlainClone(r.Dst, false, &options); err != nil {
return err
}
}
return nil
}