// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. package main import ( "errors" "github.com/mattermost/mattermost-server/app" "github.com/mattermost/mattermost-server/model" "github.com/spf13/cobra" ) var commandCmd = &cobra.Command{ Use: "command", Short: "Management of slash commands", } var commandMoveCmd = &cobra.Command{ Use: "move", Short: "Move a slash command to a different team", Long: `Move a slash command to a different team. Commands can be specified by [team]:[command-trigger-word]. ie. myteam:trigger or by command ID.`, Example: ` command move newteam oldteam:command`, RunE: moveCommandCmdF, } func init() { commandCmd.AddCommand( commandMoveCmd, ) } func moveCommandCmdF(cmd *cobra.Command, args []string) error { a, err := initDBCommandContextCobra(cmd) if err != nil { return err } if len(args) < 2 { return errors.New("Enter the destination team and at least one comamnd to move.") } team := getTeamFromTeamArg(a, args[0]) if team == nil { return errors.New("Unable to find destination team '" + args[0] + "'") } commands := getCommandsFromCommandArgs(a, args[1:]) CommandPrintErrorln(commands) for i, command := range commands { if command == nil { CommandPrintErrorln("Unable to find command '" + args[i+1] + "'") continue } if err := moveCommand(a, team, command); err != nil { CommandPrintErrorln("Unable to move command '" + command.Trigger + "' error: " + err.Error()) } else { CommandPrettyPrintln("Moved command '" + command.Trigger + "'") } } return nil } func moveCommand(a *app.App, team *model.Team, command *model.Command) *model.AppError { return a.MoveCommand(team, command) }