refactor: replace explicit fields with tag-based property system
This commit is contained in:
@@ -11,43 +11,39 @@ import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var deleteForce bool
|
||||
|
||||
var dForce bool
|
||||
var deleteCmd = &cobra.Command{
|
||||
Use: "delete <id>",
|
||||
Short: "Delete a node",
|
||||
Args: cobra.ExactArgs(1),
|
||||
Use: "delete <id>", Short: "Delete a node", Args: cobra.ExactArgs(1),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
d, err := db.GetDB()
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
return
|
||||
}
|
||||
id := args[0]
|
||||
n, err := d.NodeByID(id)
|
||||
n, err := d.NodeByID(args[0])
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, " node not found:", id)
|
||||
fmt.Fprintln(os.Stderr, " node not found:", args[0])
|
||||
return
|
||||
}
|
||||
if !deleteForce {
|
||||
fmt.Printf(" Delete %s '%s'? [y/N]: ", n.GetType(), n.Title)
|
||||
reader := bufio.NewReader(os.Stdin)
|
||||
resp, _ := reader.ReadString('\n')
|
||||
resp = strings.TrimSpace(strings.ToLower(resp))
|
||||
if resp != "y" && resp != "yes" {
|
||||
fmt.Println(" Cancelled.")
|
||||
|
||||
if !dForce {
|
||||
fmt.Printf("Delete %s '%s'? [y/N]: ", n.GetProperty("type"), n.Title)
|
||||
r, _ := bufio.NewReader(os.Stdin).ReadString('\n')
|
||||
if r = strings.TrimSpace(strings.ToLower(r)); r != "y" && r != "yes" {
|
||||
fmt.Println("Cancelled.")
|
||||
return
|
||||
}
|
||||
}
|
||||
if err := d.DeleteNode(id); err != nil {
|
||||
fmt.Fprintln(os.Stderr, " failed to delete:", err)
|
||||
return
|
||||
|
||||
if err := d.DeleteNode(args[0]); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "failed to delete: ", err)
|
||||
} else {
|
||||
output.PrintAction(cmd.OutOrStdout(), "Deleted", args[0], true)
|
||||
}
|
||||
output.PrintDeleted(cmd.OutOrStdout(), id)
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
rootCmd.AddCommand(deleteCmd)
|
||||
deleteCmd.Flags().BoolVarP(&deleteForce, "force", "f", false, "skip confirmation")
|
||||
deleteCmd.Flags().BoolVarP(&dForce, "force", "f", false, "")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user