func()

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
}