refactor(config): copylocks and staticcheck findings (#1261)

refactor: copylocks and staticcheck findings

Refactor mutex handling, optimize byte slice creation, and clean up code in accordance with go.staticcheck and copylocks guidelines.

- Changed AppConfig's mutex to *sync.Mutex, preventing mutex copying and enhancing thread safety.
- Simplified byte slice initialization in writeConfig for efficiency.
- Removed redundant return in DynamicReload for better code clarity.
This commit is contained in:
soup 2023-11-19 16:03:53 +01:00 committed by GitHub
parent 76d749b301
commit d8c977b5ba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 7 deletions

View file

@ -117,7 +117,7 @@ func (c *AppConfig) writeConfig(configPath string, configFile string) error {
host = "0.0.0.0"
} else if pd, _ := os.Open("/proc/1/cgroup"); pd != nil {
defer pd.Close()
b := make([]byte, 4096, 4096)
b := make([]byte, 4096)
pd.Read(b)
if strings.Contains(string(b), "/docker") || strings.Contains(string(b), "/lxc") {
host = "0.0.0.0"
@ -166,7 +166,7 @@ type Config interface {
type AppConfig struct {
Config *domain.Config
m sync.Mutex
m *sync.Mutex
}
func New(configPath string, version string) *AppConfig {
@ -275,8 +275,6 @@ func (c *AppConfig) DynamicReload(log logger.Logger) {
c.m.Unlock()
})
viper.WatchConfig()
return
}
func (c *AppConfig) UpdateConfig() error {

View file

@ -15,7 +15,7 @@ import (
func TestAppConfig_processLines(t *testing.T) {
type fields struct {
Config *domain.Config
m sync.Mutex
m *sync.Mutex
}
type args struct {
lines []string
@ -30,7 +30,7 @@ func TestAppConfig_processLines(t *testing.T) {
name: "append missing",
fields: fields{
Config: &domain.Config{CheckForUpdates: true, LogLevel: "TRACE"},
m: sync.Mutex{},
m: new(sync.Mutex),
},
args: args{[]string{}},
want: []string{"# Check for updates", "#", "checkForUpdates = true", "# Log level", "#", "# Default: \"DEBUG\"", "#", "# Options: \"ERROR\", \"DEBUG\", \"INFO\", \"WARN\", \"TRACE\"", "#", `logLevel = "TRACE"`, "# Log Path", "#", "# Optional", "#", "#logPath = \"\""},
@ -39,7 +39,7 @@ func TestAppConfig_processLines(t *testing.T) {
name: "update existing",
fields: fields{
Config: &domain.Config{CheckForUpdates: true, LogLevel: "TRACE"},
m: sync.Mutex{},
m: new(sync.Mutex),
},
args: args{[]string{"# Check for updates", "#", "checkForUpdates = false", "# Log level", "#", "# Default: \"DEBUG\"", "#", "# Options: \"ERROR\", \"DEBUG\", \"INFO\", \"WARN\", \"TRACE\"", "#", `logLevel = "TRACE"`, "# Log Path", "#", "# Optional", "#", "#logPath = \"\""}},
want: []string{"# Check for updates", "#", "checkForUpdates = true", "# Log level", "#", "# Default: \"DEBUG\"", "#", "# Options: \"ERROR\", \"DEBUG\", \"INFO\", \"WARN\", \"TRACE\"", "#", `logLevel = "TRACE"`, "# Log Path", "#", "# Optional", "#", "#logPath = \"\""},