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 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 cmd/platform/config.go (limited to 'cmd/platform/config.go') 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") +} -- cgit v1.2.3-1-g7c22