Skip to content
代码片段 群组 项目
未验证 提交 fd3ecab5 编辑于 作者: Igor Drozdov's avatar Igor Drozdov 提交者: GitLab
浏览文件

Merge branch 'ashmckenzie/dry-up-main' into 'master'

New config.LoadConfigFromFile() function

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141577



Merged-by: default avatarIgor Drozdov <idrozdov@gitlab.com>
Approved-by: default avatarIgor Drozdov <idrozdov@gitlab.com>
Approved-by: default avatarGavin Hinfey <ghinfey@gitlab.com>
Co-authored-by: default avatarAsh McKenzie <amckenzie@gitlab.com>
No related branches found
No related tags found
无相关合并请求
...@@ -162,6 +162,20 @@ func NewDefaultConfig() *Config { ...@@ -162,6 +162,20 @@ func NewDefaultConfig() *Config {
} }
} }
func LoadConfigFromFile(file *string) (*Config, error) {
tomlData := ""
if *file != "" {
buf, err := os.ReadFile(*file)
if err != nil {
return nil, fmt.Errorf("file: %v", err)
}
tomlData = string(buf)
}
return LoadConfig(tomlData)
}
func LoadConfig(data string) (*Config, error) { func LoadConfig(data string) (*Config, error) {
cfg := NewDefaultConfig() cfg := NewDefaultConfig()
......
package config package config
import ( import (
"os"
"path/filepath" "path/filepath"
"testing" "testing"
...@@ -196,3 +197,30 @@ func TestDefaultConfig(t *testing.T) { ...@@ -196,3 +197,30 @@ func TestDefaultConfig(t *testing.T) {
require.Equal(t, uint64(250000), cfg.ImageResizerConfig.MaxFilesize) require.Equal(t, uint64(250000), cfg.ImageResizerConfig.MaxFilesize)
} }
func TestLoadConfigFromFile(t *testing.T) {
config := `
[image_resizer]
max_filesize = 350000
`
fileName := createTempFile(t, []byte(config))
cfg, err := LoadConfigFromFile(&fileName)
require.NoError(t, err)
require.Equal(t, uint64(350000), cfg.ImageResizerConfig.MaxFilesize)
}
func createTempFile(t *testing.T, contents []byte) string {
t.Helper()
tmpFile, err := os.CreateTemp(t.TempDir(), "config.toml")
require.NoError(t, err)
defer tmpFile.Close()
_, err = tmpFile.Write(contents)
require.NoError(t, err)
return tmpFile.Name()
}
...@@ -138,16 +138,7 @@ func buildConfig(arg0 string, args []string) (*bootConfig, *config.Config, error ...@@ -138,16 +138,7 @@ func buildConfig(arg0 string, args []string) (*bootConfig, *config.Config, error
cfg.CableBackend = cfg.Backend cfg.CableBackend = cfg.Backend
} }
tomlData := "" cfgFromFile, err := config.LoadConfigFromFile(configFile)
if *configFile != "" {
buf, err := os.ReadFile(*configFile)
if err != nil {
return nil, nil, fmt.Errorf("configFile: %v", err)
}
tomlData = string(buf)
}
cfgFromFile, err := config.LoadConfig(tomlData)
if err != nil { if err != nil {
return nil, nil, fmt.Errorf("configFile: %v", err) return nil, nil, fmt.Errorf("configFile: %v", err)
} }
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册