From 8a7fe4ca07df7bf94fb897271e29fd7605595ace Mon Sep 17 00:00:00 2001 From: decentral1se Date: Fri, 17 Jan 2025 17:46:41 +0100 Subject: [PATCH] fix: prompt, skip adding if next present https://git.coopcloud.tech/toolshed/abra/issues/486 --- cli/recipe/release.go | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/cli/recipe/release.go b/cli/recipe/release.go index 660de687..d56b88c7 100644 --- a/cli/recipe/release.go +++ b/cli/recipe/release.go @@ -267,6 +267,8 @@ func addReleaseNotes(recipe recipe.Recipe, tag string) error { return err } + var addNextAsReleaseNotes bool + nextReleaseNotePath := path.Join(releaseDir, "next") if _, err := os.Stat(nextReleaseNotePath); err == nil { // release/next note exists. Move it to release/ @@ -276,38 +278,37 @@ func addReleaseNotes(recipe recipe.Recipe, tag string) error { } if !internal.NoInput { - prompt := &survey.Input{ + prompt := &survey.Confirm{ Message: "Use release note in release/next?", } - var addReleaseNote bool - if err := survey.AskOne(prompt, &addReleaseNote); err != nil { + + if err := survey.AskOne(prompt, &addNextAsReleaseNotes); err != nil { return err } - if !addReleaseNote { + + if !addNextAsReleaseNotes { return nil } } - err := os.Rename(nextReleaseNotePath, tagReleaseNotePath) - if err != nil { + if err := os.Rename(nextReleaseNotePath, tagReleaseNotePath); err != nil { return err } - err = gitPkg.Add(recipe.Dir, path.Join("release", "next"), internal.Dry) - if err != nil { + if err := gitPkg.Add(recipe.Dir, path.Join("release", "next"), internal.Dry); err != nil { return err } - err = gitPkg.Add(recipe.Dir, path.Join("release", tag), internal.Dry) - if err != nil { + if err := gitPkg.Add(recipe.Dir, path.Join("release", tag), internal.Dry); err != nil { return err } } else if !errors.Is(err, os.ErrNotExist) { return err } - // No release note exists for the current release. - if internal.NoInput { + // NOTE(d1): No release note exists for the current release. Or, we've + // already used release/next as the release note + if internal.NoInput || addNextAsReleaseNotes { return nil }