summaryrefslogtreecommitdiffstats
path: root/cmd/mattermost/commands/channel.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/mattermost/commands/channel.go')
-rw-r--r--cmd/mattermost/commands/channel.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/cmd/mattermost/commands/channel.go b/cmd/mattermost/commands/channel.go
index 478466a34..cbafac6b5 100644
--- a/cmd/mattermost/commands/channel.go
+++ b/cmd/mattermost/commands/channel.go
@@ -26,6 +26,14 @@ var ChannelCreateCmd = &cobra.Command{
RunE: createChannelCmdF,
}
+var ChannelRenameCmd = &cobra.Command{
+ Use: "rename",
+ Short: "Rename a channel",
+ Long: `Rename a channel.`,
+ Example: `" channel rename myteam:mychannel newchannelname --display_name "New Display Name"`,
+ RunE: renameChannelCmdF,
+}
+
var RemoveChannelUsersCmd = &cobra.Command{
Use: "remove [channel] [users]",
Short: "Remove users from channel",
@@ -115,6 +123,8 @@ func init() {
ModifyChannelCmd.Flags().Bool("public", false, "Convert the channel to a public channel")
ModifyChannelCmd.Flags().String("username", "", "Required. Username who changes the channel privacy.")
+ ChannelRenameCmd.Flags().String("display_name", "", "Channel Display Name")
+
ChannelCmd.AddCommand(
ChannelCreateCmd,
RemoveChannelUsersCmd,
@@ -125,6 +135,7 @@ func init() {
MoveChannelsCmd,
RestoreChannelsCmd,
ModifyChannelCmd,
+ ChannelRenameCmd,
)
RootCmd.AddCommand(ChannelCmd)
@@ -493,3 +504,34 @@ func modifyChannelCmdF(command *cobra.Command, args []string) error {
return nil
}
+
+func renameChannelCmdF(command *cobra.Command, args []string) error {
+ a, err := InitDBCommandContextCobra(command)
+ var newDisplayName, newChannelName string
+ if err != nil {
+ return err
+ }
+ defer a.Shutdown()
+
+ if len(args) < 2 {
+ return errors.New("Not enough arguments.")
+ }
+
+ channel := getChannelFromChannelArg(a, args[0])
+ if channel == nil {
+ return errors.New("Unable to find channel '" + args[0] + "'")
+ }
+
+ newChannelName = args[1]
+ newDisplayName, errdn := command.Flags().GetString("display_name")
+ if errdn != nil {
+ return errdn
+ }
+
+ _, errch := a.RenameChannel(channel, newChannelName, newDisplayName)
+ if errch != nil {
+ return errors.New("Error in updating channel from " + channel.Name + " to " + newChannelName + err.Error())
+ }
+
+ return nil
+}