package cmd import ( "fmt" "github.com/lerko/nib/internal/db" "github.com/lerko/nib/internal/display" "github.com/spf13/cobra" ) var demoteCmd = &cobra.Command{ Use: "demote ", Short: "strip card layer, return to fluid", Args: cobra.ExactArgs(1), RunE: runDemote, } func init() { rootCmd.AddCommand(demoteCmd) } func runDemote(_ *cobra.Command, args []string) error { store, err := openStore() if err != nil { return err } defer store.Close() id, err := store.Resolve(args[0]) if err != nil { return fmt.Errorf("not_found — no entity with id %s", args[0]) } if err := store.Demote(id); err != nil { if err == db.ErrAlreadyFluid { return fmt.Errorf("invalid_demote — entity %s is already fluid", display.FormatID(id)) } return err } fmt.Printf("demoted %s → note\n", display.FormatID(id)) return nil }