package cmd import ( "axolotl/output" "axolotl/service" "fmt" "os" "github.com/spf13/cobra" ) var aliasDesc string var aliasCmd = &cobra.Command{ Use: "alias [name] [command]", Short: "Manage aliases", Args: cobra.MaximumNArgs(2), Run: func(cmd *cobra.Command, args []string) { w := cmd.OutOrStdout() if len(args) == 0 { if aliases, err := cfg.ListAliases(); err == nil { output.PrintAliases(w, aliases, jsonFlag) } return } if len(args) == 1 { if a, err := cfg.GetAlias(args[0]); err != nil { fmt.Fprintln(os.Stderr, "alias not found:", args[0]) } else { fmt.Println(a.Command) } return } if err := cfg.SetAlias(&service.Alias{Name: args[0], Command: args[1], Description: aliasDesc}); err != nil { fmt.Fprintln(os.Stderr, "failed to set alias:", err) } else { output.PrintAction(w, "Alias set", args[0], false) } }, } var aliasDeleteCmd = &cobra.Command{ Use: "delete ", Short: "Delete an alias", Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { if err := cfg.DeleteAlias(args[0]); err != nil { fmt.Fprintln(os.Stderr, err) } else { output.PrintAction(cmd.OutOrStdout(), "Alias deleted", args[0], false) } }, } func init() { rootCmd.AddCommand(aliasCmd) aliasCmd.AddCommand(aliasDeleteCmd) aliasCmd.Flags().StringVar(&aliasDesc, "desc", "", "description for the alias") }