fix tests/integration/recipe_new.bats
continuous-integration/drone/pr Build is passing Details

This commit is contained in:
p4u1 2024-02-23 12:34:59 +01:00
parent b6b0808066
commit 0aac464ded
4 changed files with 31 additions and 9 deletions

View File

@ -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 {

View File

@ -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)
}

View File

@ -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)

View File

@ -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 \