From f9ac95c920174728f9f28d273d6ffcd5493faafb Mon Sep 17 00:00:00 2001 From: Simon Soriano Date: Mon, 17 Apr 2017 09:44:10 -0500 Subject: Add CLI tool for validating the config.json file (#6041) --- cmd/platform/config.go | 66 ++++++++++++++++++++++++++++++++++++++++++++++ cmd/platform/mattermost.go | 2 +- 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 cmd/platform/config.go (limited to 'cmd') diff --git a/cmd/platform/config.go b/cmd/platform/config.go new file mode 100644 index 000000000..d66129de4 --- /dev/null +++ b/cmd/platform/config.go @@ -0,0 +1,66 @@ +// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. +package main + +import ( + "encoding/json" + "errors" + "github.com/mattermost/platform/model" + "github.com/mattermost/platform/utils" + "github.com/spf13/cobra" + "os" +) + +var configCmd = &cobra.Command{ + Use: "config", + Short: "Configuration", +} + +var validateConfigCmd = &cobra.Command{ + Use: "validate", + Short: "Validate config file", + Run: configValidateCmdF, +} + +func init() { + configCmd.AddCommand( + validateConfigCmd, + ) +} + +func configValidateCmdF(cmd *cobra.Command, args []string) { + utils.TranslationsPreInit() + filePath, err := cmd.Flags().GetString("config") + if err != nil { + CommandPrintErrorln(err) + return + } + + filePath = utils.FindConfigFile(filePath) + + file, err := os.Open(filePath) + if err != nil { + CommandPrintErrorln(err) + return + } + + decoder := json.NewDecoder(file) + config := model.Config{} + err = decoder.Decode(&config) + if err != nil { + CommandPrintErrorln(err) + return + } + + if _, err := file.Stat(); err != nil { + CommandPrintErrorln(err) + return + } + + if err := config.IsValid(); err != nil { + CommandPrintErrorln(errors.New(utils.T(err.Id))) + return + } + + CommandPrettyPrintln("The document is valid") +} diff --git a/cmd/platform/mattermost.go b/cmd/platform/mattermost.go index 56e91dd8d..9f58b3250 100644 --- a/cmd/platform/mattermost.go +++ b/cmd/platform/mattermost.go @@ -33,7 +33,7 @@ func init() { resetCmd.Flags().Bool("confirm", false, "Confirm you really want to delete everything and a DB backup has been performed.") - rootCmd.AddCommand(serverCmd, versionCmd, userCmd, teamCmd, licenseCmd, importCmd, resetCmd, channelCmd, rolesCmd, testCmd, ldapCmd) + rootCmd.AddCommand(serverCmd, versionCmd, userCmd, teamCmd, licenseCmd, importCmd, resetCmd, channelCmd, rolesCmd, testCmd, ldapCmd, configCmd) } var rootCmd = &cobra.Command{ -- cgit v1.2.3-1-g7c22