diff options
author | Pierre de La Morinerie <kemenaran@gmail.com> | 2018-02-02 23:24:14 +0530 |
---|---|---|
committer | Chris <ccbrown112@gmail.com> | 2018-02-02 11:54:14 -0600 |
commit | 07902b4c91ac80042df5585e25ce60a5078016bd (patch) | |
tree | 27b10f47c1ad51303652c744c60a1f33799f5ae5 /cmd/platform | |
parent | 2256e23c9ef7295b0001b1723be491254bfe73fe (diff) | |
download | chat-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/platform')
-rw-r--r-- | cmd/platform/server.go | 16 |
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) { |