func gitCloneShallow()

in getdeps/git.go [52:78]


func gitCloneShallow(label, repo, ref, dest string) (err error) {
	if err = os.MkdirAll(dest, 0o755); err != nil {
		return fmt.Errorf("%s: error creating %q: %w", label, dest, err)
	}
	defer func() {
		if err != nil {
			if dest != "." {
				os.RemoveAll(dest)
			} else {
				os.RemoveAll(".git")
			}
		}
	}()
	if err = runCommand("git", "-C", dest, "init", "-q"); err != nil {
		return fmt.Errorf("%s: %w", label, err)
	}
	if err = runCommand("git", "-C", dest, "remote", "add", "origin", repo); err != nil {
		return fmt.Errorf("%s: %w", label, err)
	}
	if err = runCommand("git", "-C", dest, "fetch", "--depth=1", "origin", ref); err != nil {
		return fmt.Errorf("%s: %w", label, err)
	}
	if err = runCommand("git", "-C", dest, "checkout", "-q", ref); err != nil {
		return fmt.Errorf("%s: %w", label, err)
	}
	return nil
}