From 90337263a68452653a1baa1e5c0c8f603d9f7935 Mon Sep 17 00:00:00 2001 From: guoxudong Date: Fri, 6 Dec 2019 17:10:47 +0800 Subject: [PATCH] update cmd delete --- cmd/delete.go | 37 ++++++++++++++++++++++++++++++++----- cmd/switch.go | 2 +- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/cmd/delete.go b/cmd/delete.go index d1a4e7a3..01761823 100644 --- a/cmd/delete.go +++ b/cmd/delete.go @@ -17,6 +17,7 @@ package cmd import ( "fmt" + "github.com/manifoldco/promptui" "github.com/spf13/cobra" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "log" @@ -57,10 +58,15 @@ kubecm delete my-context } num := SelectUI(kubeItems, "Select The Delete Kube Context") kubeName := kubeItems[num].Name - err = deleteContext([]string{kubeName}, config) - if err != nil { - Error.Println(err) - os.Exit(-1) + confirm := BoolUI(fmt.Sprintf("Are you sure you want to delete「%s」?", kubeName)) + if confirm == "True" { + err = deleteContext([]string{kubeName}, config) + if err != nil { + Error.Println(err) + os.Exit(-1) + } + } else { + log.Println("Nothing deleted!") } } else { fmt.Println("Please enter the context you want to delete.") @@ -77,7 +83,7 @@ func deleteContext(ctxs []string, config *clientcmdapi.Config) error { for _, ctx := range ctxs { if _, ok := config.Contexts[ctx]; ok { delete(config.Contexts, ctx) - log.Printf("Context Delete: %s \n", ctx) + log.Printf("Context Delete:「%s」\n", ctx) } else { Error.Printf("「%s」do not exit.", ctx) } @@ -89,3 +95,24 @@ func deleteContext(ctxs []string, config *clientcmdapi.Config) error { } return nil } + +func BoolUI(label string) string { + templates := &promptui.SelectTemplates{ + Label: "{{ . }}", + Active: "\U0001F37A {{ . | red }}", + Inactive: " {{ . | cyan }}", + Selected: "\U0001F47B {{ . | green }}", + } + prompt := promptui.Select{ + Label: label, + Items: []string{"True", "False"}, + Templates: templates, + Size: 2, + } + _, obj, err := prompt.Run() + if err != nil { + Error.Printf("Prompt failed %v\n", err) + os.Exit(-1) + } + return obj +} diff --git a/cmd/switch.go b/cmd/switch.go index 167418d3..fd611afe 100644 --- a/cmd/switch.go +++ b/cmd/switch.go @@ -129,7 +129,7 @@ func SelectUI(kubeItems []needle, label string) int { Label: "{{ . }}", Active: "\U0001F63C {{ .Name | red }}{{ .Center | red}}", Inactive: " {{ .Name | cyan }}{{ .Center | red}}", - Selected: "\U0001F638 {{ .Name | green }}", + Selected: "\U0001F638 Select:{{ .Name | green }}", Details: ` --------- Info ---------- {{ "Name:" | faint }} {{ .Name }}