make config.json play nicely with version control (#7221)
Этот коммит содержится в:
1
.gitignore
поставляемый
1
.gitignore
поставляемый
@@ -9,6 +9,7 @@ npm-debug.log
|
|||||||
webapp/yarn-error.log
|
webapp/yarn-error.log
|
||||||
mattermost.mattermost-license
|
mattermost.mattermost-license
|
||||||
config/mattermost.mattermost-license
|
config/mattermost.mattermost-license
|
||||||
|
config/config.json
|
||||||
|
|
||||||
web/static/js/bundle*.js
|
web/static/js/bundle*.js
|
||||||
web/static/js/bundle*.js.map
|
web/static/js/bundle*.js.map
|
||||||
|
|||||||
6
Makefile
6
Makefile
@@ -279,6 +279,10 @@ test-te: start-docker prepare-enterprise do-cover-file
|
|||||||
test-postgres: start-docker prepare-enterprise
|
test-postgres: start-docker prepare-enterprise
|
||||||
@echo Testing Postgres
|
@echo Testing Postgres
|
||||||
|
|
||||||
|
if [ ! -f config/config.json ]; then \
|
||||||
|
cp config/default.json config/config.json; \
|
||||||
|
fi; \
|
||||||
|
|
||||||
@sed -i'' -e 's|"DriverName": "mysql"|"DriverName": "postgres"|g' config/config.json
|
@sed -i'' -e 's|"DriverName": "mysql"|"DriverName": "postgres"|g' config/config.json
|
||||||
@sed -i'' -e 's|"DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8"|"DataSource": "postgres://mmuser:mostest@dockerhost:5432?sslmode=disable"|g' config/config.json
|
@sed -i'' -e 's|"DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8"|"DataSource": "postgres://mmuser:mostest@dockerhost:5432?sslmode=disable"|g' config/config.json
|
||||||
|
|
||||||
@@ -387,6 +391,8 @@ package: build build-client
|
|||||||
cp -RL templates $(DIST_PATH)
|
cp -RL templates $(DIST_PATH)
|
||||||
cp -RL i18n $(DIST_PATH)
|
cp -RL i18n $(DIST_PATH)
|
||||||
|
|
||||||
|
mv $(DIST_PATH)/config/default.json $(DIST_PATH)/config/config.json
|
||||||
|
|
||||||
@# Disable developer settings
|
@# Disable developer settings
|
||||||
sed -i'' -e 's|"ConsoleLevel": "DEBUG"|"ConsoleLevel": "INFO"|g' $(DIST_PATH)/config/config.json
|
sed -i'' -e 's|"ConsoleLevel": "DEBUG"|"ConsoleLevel": "INFO"|g' $(DIST_PATH)/config/config.json
|
||||||
sed -i'' -e 's|"SiteURL": "http://localhost:8065"|"SiteURL": ""|g' $(DIST_PATH)/config/config.json
|
sed -i'' -e 's|"SiteURL": "http://localhost:8065"|"SiteURL": ""|g' $(DIST_PATH)/config/config.json
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"crypto/md5"
|
"crypto/md5"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@@ -308,6 +309,22 @@ func LoadConfig(fileName string) {
|
|||||||
viper.AddConfigPath(".")
|
viper.AddConfigPath(".")
|
||||||
|
|
||||||
configReadErr := viper.ReadInConfig()
|
configReadErr := viper.ReadInConfig()
|
||||||
|
if configReadErr != nil {
|
||||||
|
if _, ok := configReadErr.(viper.ConfigFileNotFoundError); ok {
|
||||||
|
// In case of a file-not-found error, try to copy default.json if it's present.
|
||||||
|
defaultPath := FindConfigFile("default.json")
|
||||||
|
if src, err := os.Open(defaultPath); err == nil {
|
||||||
|
if dest, err := os.OpenFile(filepath.Join(filepath.Dir(defaultPath), "config.json"), os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0600); err == nil {
|
||||||
|
if _, err := io.Copy(dest, src); err == nil {
|
||||||
|
configReadErr = viper.ReadInConfig()
|
||||||
|
}
|
||||||
|
dest.Close()
|
||||||
|
}
|
||||||
|
src.Close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if configReadErr != nil {
|
if configReadErr != nil {
|
||||||
errMsg := T("utils.config.load_config.opening.panic", map[string]interface{}{"Filename": fileName, "Error": configReadErr.Error()})
|
errMsg := T("utils.config.load_config.opening.panic", map[string]interface{}{"Filename": fileName, "Error": configReadErr.Error()})
|
||||||
fmt.Fprintln(os.Stderr, errMsg)
|
fmt.Fprintln(os.Stderr, errMsg)
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user