summaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorPierre de La Morinerie <kemenaran@gmail.com>2018-02-02 23:24:14 +0530
committerChris <ccbrown112@gmail.com>2018-02-02 11:54:14 -0600
commit07902b4c91ac80042df5585e25ce60a5078016bd (patch)
tree27b10f47c1ad51303652c744c60a1f33799f5ae5 /cmd
parent2256e23c9ef7295b0001b1723be491254bfe73fe (diff)
downloadchat-07902b4c91ac80042df5585e25ce60a5078016bd.tar.gz
chat-07902b4c91ac80042df5585e25ce60a5078016bd.tar.bz2
chat-07902b4c91ac80042df5585e25ce60a5078016bd.zip
report server launch errors (#8189)
When starting the server using `platform server`, errors occuring during startup are not reported in the console. The command exit with a 0 exit code (i.e. "success"), although the server failed to launch. With this change, when an error occurs while initializing the app (like a missing or invalid configuration file): - the error is printed to the console; - the command exit with a "-1" exit code. This allow shell scripts to properly detect the startup failure, and to react to it. Example of error displayed: ``` $ platform server Error: LoadConfig: Error decoding config file=config.json, err=While parsing config: invalid character ':' after top-level value, ``
Diffstat (limited to 'cmd')
-rw-r--r--cmd/platform/server.go16
1 files changed, 9 insertions, 7 deletions
diff --git a/cmd/platform/server.go b/cmd/platform/server.go
index d289898da..7ac075502 100644
--- a/cmd/platform/server.go
+++ b/cmd/platform/server.go
@@ -28,9 +28,10 @@ const (
var MaxNotificationsPerChannelDefault int64 = 1000000
var serverCmd = &cobra.Command{
- Use: "server",
- Short: "Run the Mattermost server",
- RunE: runServerCmd,
+ Use: "server",
+ Short: "Run the Mattermost server",
+ RunE: runServerCmd,
+ SilenceUsage: true,
}
func runServerCmd(cmd *cobra.Command, args []string) error {
@@ -41,11 +42,10 @@ func runServerCmd(cmd *cobra.Command, args []string) error {
disableConfigWatch, _ := cmd.Flags().GetBool("disableconfigwatch")
- runServer(config, disableConfigWatch)
- return nil
+ return runServer(config, disableConfigWatch)
}
-func runServer(configFileLocation string, disableConfigWatch bool) {
+func runServer(configFileLocation string, disableConfigWatch bool) error {
options := []app.Option{app.ConfigFile(configFileLocation)}
if disableConfigWatch {
options = append(options, app.DisableConfigWatch)
@@ -54,7 +54,7 @@ func runServer(configFileLocation string, disableConfigWatch bool) {
a, err := app.New(options...)
if err != nil {
l4g.Error(err.Error())
- return
+ return err
}
defer a.Shutdown()
@@ -172,6 +172,8 @@ func runServer(configFileLocation string, disableConfigWatch bool) {
a.Jobs.StopSchedulers()
a.Jobs.StopWorkers()
+
+ return nil
}
func runSecurityJob(a *app.App) {