From c5bc932ba2fb345e2efd6d0f3c361c344665f6b9 Mon Sep 17 00:00:00 2001 From: KUOKA Yusuke Date: Sun, 16 Sep 2018 22:43:29 +0900 Subject: [PATCH] feat: Prompt before delete (#341) Resolves #182 --- main.go | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 9863850b..01769395 100644 --- a/main.go +++ b/main.go @@ -412,6 +412,10 @@ Do you really want to apply? Value: "", Usage: "pass args to helm exec", }, + cli.BoolFlag{ + Name: "auto-approve", + Usage: "Skip interactive approval before deleting", + }, cli.BoolFlag{ Name: "purge", Usage: "purge releases i.e. free release names and histories", @@ -430,7 +434,23 @@ Do you really want to apply? helm.SetHelmBinary(c.GlobalString("helm-binary")) } - return state.DeleteReleases(helm, purge) + names := make([]string, len(state.Releases)) + for i, r := range state.Releases { + names[i] = fmt.Sprintf(" %s (%s)", r.Name, r.Chart) + } + + msg := fmt.Sprintf(`Affected releases are: +%s + +Do you really want to delete? + Helmfile will delete all your releases, as shown above. + +`, strings.Join(names, "\n")) + autoApprove := c.Bool("auto-approve") + if autoApprove || !autoApprove && askForConfirmation(msg) { + return state.DeleteReleases(helm, purge) + } + return nil }) }, },