Doug Lauder
2023-03-22 17:22:27 -04:00
коммит произвёл GitHub
родитель b61c096497
Коммит c943ed6859
13276 изменённых файлов: 1695615 добавлений и 223189 удалений

46
server/scripts/config_generator/main.go Обычный файл
Просмотреть файл

@@ -0,0 +1,46 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
package main
import (
"encoding/json"
"fmt"
"os"
"github.com/mattermost/mattermost-server/v6/model"
)
// generateDefaultConfig writes default config to outputFile.
func generateDefaultConfig(outputFile *os.File) error {
defaultCfg := &model.Config{}
defaultCfg.SetDefaults()
if data, err := json.MarshalIndent(defaultCfg, "", " "); err != nil {
return err
} else if _, err := outputFile.Write(data); err != nil {
return err
}
return nil
}
func main() {
outputFile := os.Getenv("OUTPUT_CONFIG")
if outputFile == "" {
fmt.Println("Output file name is missing. Please set OUTPUT_CONFIG env variable to absolute path")
os.Exit(2)
}
if _, err := os.Stat(outputFile); !os.IsNotExist(err) {
_, _ = fmt.Fprintf(os.Stderr, "File %s already exists. Not overwriting!\n", outputFile)
os.Exit(2)
}
if file, err := os.Create(outputFile); err == nil {
err = generateDefaultConfig(file)
_ = file.Close()
if err != nil {
panic(err)
}
} else {
panic(err)
}
}

Просмотреть файл

@@ -0,0 +1,39 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
package main
import (
"encoding/json"
"os"
"testing"
"github.com/mattermost/mattermost-server/v6/model"
"github.com/stretchr/testify/require"
)
func TestDefaultsGenerator(t *testing.T) {
tmpFile, err := os.CreateTemp("", "tempconfig")
defer os.Remove(tmpFile.Name())
require.NoError(t, err)
require.NoError(t, generateDefaultConfig(tmpFile))
_ = tmpFile.Close()
var config model.Config
b, err := os.ReadFile(tmpFile.Name())
require.NoError(t, err)
require.NoError(t, json.Unmarshal(b, &config))
require.Equal(t, *config.SqlSettings.AtRestEncryptKey, "")
require.Equal(t, *config.FileSettings.PublicLinkSalt, "")
require.Equal(t, *config.Office365Settings.Scope, model.Office365SettingsDefaultScope)
require.Equal(t, *config.Office365Settings.AuthEndpoint, model.Office365SettingsDefaultAuthEndpoint)
require.Equal(t, *config.Office365Settings.UserAPIEndpoint, model.Office365SettingsDefaultUserAPIEndpoint)
require.Equal(t, *config.Office365Settings.TokenEndpoint, model.Office365SettingsDefaultTokenEndpoint)
require.Equal(t, *config.GoogleSettings.Scope, model.GoogleSettingsDefaultScope)
require.Equal(t, *config.GoogleSettings.AuthEndpoint, model.GoogleSettingsDefaultAuthEndpoint)
require.Equal(t, *config.GoogleSettings.UserAPIEndpoint, model.GoogleSettingsDefaultUserAPIEndpoint)
require.Equal(t, *config.GoogleSettings.TokenEndpoint, model.GoogleSettingsDefaultTokenEndpoint)
}