add --deep_git_clone flag

This commit is contained in:
john
2019-11-28 11:54:03 +00:00
parent fc92f4acd0
commit 6485a7cf3e
9 changed files with 87 additions and 6 deletions

View File

@@ -18,17 +18,21 @@ import (
// the remote bases will all be root-only restricted.
func NewLoader(
lr LoadRestrictorFunc,
target string, fSys filesys.FileSystem) (ifc.Loader, error) {
target string, fSys filesys.FileSystem, deepClone bool) (ifc.Loader, error) {
cloner := git.ClonerUsingGitExec
if deepClone {
cloner = git.DeepClonerUsingGitExec
}
repoSpec, err := git.NewRepoSpecFromUrl(target)
if err == nil {
// The target qualifies as a remote git target.
return newLoaderAtGitClone(
repoSpec, fSys, nil, git.ClonerUsingGitExec)
repoSpec, fSys, nil, cloner)
}
root, err := demandDirectoryRoot(fSys, target)
if err != nil {
return nil, err
}
return newLoaderAtConfirmedDir(
lr, root, fSys, nil, git.ClonerUsingGitExec), nil
lr, root, fSys, nil, cloner), nil
}