From 0aac464ded6b43afb3ec37ade2f64d6191b9838f Mon Sep 17 00:00:00 2001 From: p4u1 Date: Fri, 23 Feb 2024 12:34:59 +0100 Subject: [PATCH] fix tests/integration/recipe_new.bats --- cli/internal/cli.go | 16 ++++++++++++++++ cli/recipe/new.go | 7 ++++--- pkg/git/init.go | 13 +++++++++---- tests/integration/recipe_new.bats | 4 ++-- 4 files changed, 31 insertions(+), 9 deletions(-) diff --git a/cli/internal/cli.go b/cli/internal/cli.go index b7555bdc..c80a3082 100644 --- a/cli/internal/cli.go +++ b/cli/internal/cli.go @@ -238,6 +238,22 @@ var RemoteUserFlag = &cli.StringFlag{ Destination: &RemoteUser, } +var GitUser string +var GitUserFlag = &cli.StringFlag{ + Name: "git-user, gu", + Value: "", + Usage: "Git user name to do commits with", + Destination: &GitUser, +} + +var GitEmail string +var GitEmailFlag = &cli.StringFlag{ + Name: "git-email, ge", + Value: "", + Usage: "Git email name to do commits with", + Destination: &GitEmail, +} + // SubCommandBefore wires up pre-action machinery (e.g. --debug handling). func SubCommandBefore(c *cli.Context) error { if Debug { diff --git a/cli/recipe/new.go b/cli/recipe/new.go index 87e84d87..3c109def 100644 --- a/cli/recipe/new.go +++ b/cli/recipe/new.go @@ -4,7 +4,6 @@ import ( "bytes" "errors" "fmt" - "io/ioutil" "os" "path" "text/template" @@ -37,6 +36,8 @@ var recipeNewCommand = cli.Command{ internal.DebugFlag, internal.NoInputFlag, internal.OfflineFlag, + internal.GitUserFlag, + internal.GitEmailFlag, }, Before: internal.SubCommandBefore, Usage: "Create a new recipe", @@ -92,14 +93,14 @@ recipe and domain in the sample environment config). logrus.Fatal(err) } - if err := ioutil.WriteFile(path, templated.Bytes(), 0644); err != nil { + if err := os.WriteFile(path, templated.Bytes(), 0644); err != nil { logrus.Fatal(err) } } newGitRepo := path.Join(config.RECIPES_DIR, recipeName) - if err := git.Init(newGitRepo, true); err != nil { + if err := git.Init(newGitRepo, true, internal.GitUser, internal.GitEmail); err != nil { logrus.Fatal(err) } diff --git a/pkg/git/init.go b/pkg/git/init.go index d0af92b0..851c2e5c 100644 --- a/pkg/git/init.go +++ b/pkg/git/init.go @@ -2,13 +2,13 @@ package git import ( "github.com/go-git/go-git/v5" - gitPkg "github.com/go-git/go-git/v5" + "github.com/go-git/go-git/v5/plumbing/object" "github.com/sirupsen/logrus" ) // Init inits a new repo and commits all the stuff if you want -func Init(repoPath string, commit bool) error { - if _, err := gitPkg.PlainInit(repoPath, false); err != nil { +func Init(repoPath string, commit bool, gitUser, gitEmail string) error { + if _, err := git.PlainInit(repoPath, false); err != nil { logrus.Fatal(err) } logrus.Debugf("initialised new git repo in %s", repoPath) @@ -28,7 +28,12 @@ func Init(repoPath string, commit bool) error { return err } - if _, err = commitWorktree.Commit("init", &git.CommitOptions{}); err != nil { + var author *object.Signature + if gitUser != "" && gitEmail != "" { + author = &object.Signature{Name: gitUser, Email: gitEmail} + } + + if _, err = commitWorktree.Commit("init", &git.CommitOptions{Author: author}); err != nil { return err } logrus.Debugf("init committed all files for new git repo in %s", repoPath) diff --git a/tests/integration/recipe_new.bats b/tests/integration/recipe_new.bats index 6149f053..7b14201c 100644 --- a/tests/integration/recipe_new.bats +++ b/tests/integration/recipe_new.bats @@ -23,14 +23,14 @@ teardown(){ } @test "create new recipe" { - run $ABRA recipe new foobar + run $ABRA recipe new foobar --git-user foo --git-email foo@example.com assert_success assert_output --partial 'Your new foobar recipe has been created' assert_exists "$ABRA_DIR/recipes/foobar" } @test "create new app from new recipe" { - run $ABRA recipe new foobar + run $ABRA recipe new foobar --git-user foo --git-email foo@example.com assert_success run $ABRA app new foobar \