// CreateEmptyLocalGitDirectory creates a git directory with no checkin yet func CreateEmptyLocalGitDirectory(t *testing.T) string { cr := util.NewCommandRunner() dir, err := ioutil.TempDir(os.TempDir(), "gitdir-s2i-test") if err != nil { t.Fatal(err) } err = cr.RunWithOptions(util.CommandOpts{Dir: dir}, "git", "init") if err != nil { t.Fatal(err) } return dir }
// CreateLocalGitDirectory creates a git directory with a commit func CreateLocalGitDirectory(t *testing.T) string { cr := util.NewCommandRunner() dir := CreateEmptyLocalGitDirectory(t) f, err := os.Create(filepath.Join(dir, "testfile")) if err != nil { t.Fatal(err) } f.Close() err = cr.RunWithOptions(util.CommandOpts{Dir: dir}, "git", "add", ".") if err != nil { t.Fatal(err) } err = cr.RunWithOptions(util.CommandOpts{Dir: dir, EnvAppend: []string{"GIT_AUTHOR_NAME=test", "GIT_AUTHOR_EMAIL=test@test", "GIT_COMMITTER_NAME=test", "GIT_COMMITTER_EMAIL=test@test"}}, "git", "commit", "-m", "testcommit") if err != nil { t.Fatal(err) } return dir }
// CreateLocalGitDirectoryWithSubmodule creates a git directory with a submodule func CreateLocalGitDirectoryWithSubmodule(t *testing.T) string { cr := util.NewCommandRunner() submodule := CreateLocalGitDirectory(t) defer os.RemoveAll(submodule) if util.UsingCygwinGit { var err error submodule, err = util.ToSlashCygwin(submodule) if err != nil { t.Fatal(err) } } dir := CreateEmptyLocalGitDirectory(t) err := cr.RunWithOptions(util.CommandOpts{Dir: dir}, "git", "submodule", "add", submodule, "submodule") if err != nil { t.Fatal(err) } return dir }
// New returns a new instance of the default implementation of the Git interface func New() Git { return &stiGit{ runner: util.NewCommandRunner(), } }
// New returns a new instance of the default implementation of the Git interface func New(fs util.FileSystem) Git { return &stiGit{ FileSystem: fs, CommandRunner: util.NewCommandRunner(), } }