ax(mining): rename SettingsManager receiver sm to settingsManager
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run

AX-1 violation: receiver name `sm` is an abbreviation that requires
context to decode. Renamed to `settingsManager` throughout, matching
the predictable-names-over-short-names principle from RFC-CORE-008.
Also corrects a comment that referenced the banned `log.Fatal` call.

Co-Authored-By: Charon <charon@lethean.io>
This commit is contained in:
Claude 2026-04-02 10:16:10 +01:00
parent 35da3edcab
commit 9a95c8be54
No known key found for this signature in database
GPG key ID: AF404715446AEB41

View file

@ -86,15 +86,15 @@ func DefaultSettings() *AppSettings {
}
}
// sm, err := NewSettingsManager()
// settings := sm.Get()
// settingsManager, err := NewSettingsManager()
// settings := settingsManager.Get()
type SettingsManager struct {
mu sync.RWMutex
settings *AppSettings
settingsPath string
}
// sm, err := NewSettingsManager()
// settingsManager, err := NewSettingsManager()
// if err != nil { return err }
func NewSettingsManager() (*SettingsManager, error) {
settingsPath, err := xdg.ConfigFile(filepath.Join("lethean-desktop", settingsFileName))
@ -102,15 +102,15 @@ func NewSettingsManager() (*SettingsManager, error) {
return nil, fmt.Errorf("could not resolve settings path: %w", err)
}
sm := &SettingsManager{
settingsManager := &SettingsManager{
settings: DefaultSettings(),
settingsPath: settingsPath,
}
if err := sm.Load(); err != nil {
if err := settingsManager.Load(); err != nil {
// If file doesn't exist, use defaults and save them
if os.IsNotExist(err) {
if saveErr := sm.Save(); saveErr != nil {
if saveErr := settingsManager.Save(); saveErr != nil {
return nil, fmt.Errorf("could not save default settings: %w", saveErr)
}
} else {
@ -118,15 +118,15 @@ func NewSettingsManager() (*SettingsManager, error) {
}
}
return sm, nil
return settingsManager, nil
}
// if err := sm.Load(); err != nil && !os.IsNotExist(err) { return err }
func (sm *SettingsManager) Load() error {
sm.mu.Lock()
defer sm.mu.Unlock()
// if err := settingsManager.Load(); err != nil && !os.IsNotExist(err) { return err }
func (settingsManager *SettingsManager) Load() error {
settingsManager.mu.Lock()
defer settingsManager.mu.Unlock()
data, err := os.ReadFile(sm.settingsPath)
data, err := os.ReadFile(settingsManager.settingsPath)
if err != nil {
return err
}
@ -136,52 +136,52 @@ func (sm *SettingsManager) Load() error {
return err
}
sm.settings = &settings
settingsManager.settings = &settings
return nil
}
// if err := sm.Save(); err != nil { log.Fatal("could not persist settings") }
func (sm *SettingsManager) Save() error {
sm.mu.Lock()
defer sm.mu.Unlock()
// if err := settingsManager.Save(); err != nil { return err }
func (settingsManager *SettingsManager) Save() error {
settingsManager.mu.Lock()
defer settingsManager.mu.Unlock()
data, err := json.MarshalIndent(sm.settings, "", " ")
data, err := json.MarshalIndent(settingsManager.settings, "", " ")
if err != nil {
return err
}
return os.WriteFile(sm.settingsPath, data, 0600)
return os.WriteFile(settingsManager.settingsPath, data, 0600)
}
// settings := sm.Get()
// settings := settingsManager.Get()
// if settings.Theme == "dark" { ... }
func (sm *SettingsManager) Get() *AppSettings {
sm.mu.RLock()
defer sm.mu.RUnlock()
func (settingsManager *SettingsManager) Get() *AppSettings {
settingsManager.mu.RLock()
defer settingsManager.mu.RUnlock()
// Return a copy to prevent concurrent modification
settingsCopy := *sm.settings
settingsCopy := *settingsManager.settings
return &settingsCopy
}
// sm.Update(func(s *AppSettings) { s.Theme = "dark" })
func (sm *SettingsManager) Update(fn func(*AppSettings)) error {
sm.mu.Lock()
defer sm.mu.Unlock()
// settingsManager.Update(func(s *AppSettings) { s.Theme = "dark" })
func (settingsManager *SettingsManager) Update(fn func(*AppSettings)) error {
settingsManager.mu.Lock()
defer settingsManager.mu.Unlock()
fn(sm.settings)
fn(settingsManager.settings)
data, err := json.MarshalIndent(sm.settings, "", " ")
data, err := json.MarshalIndent(settingsManager.settings, "", " ")
if err != nil {
return err
}
return os.WriteFile(sm.settingsPath, data, 0600)
return os.WriteFile(settingsManager.settingsPath, data, 0600)
}
// sm.UpdateWindowState(100, 200, 1400, 900, false)
func (sm *SettingsManager) UpdateWindowState(x, y, width, height int, maximized bool) error {
return sm.Update(func(s *AppSettings) {
// settingsManager.UpdateWindowState(100, 200, 1400, 900, false)
func (settingsManager *SettingsManager) UpdateWindowState(x, y, width, height int, maximized bool) error {
return settingsManager.Update(func(s *AppSettings) {
s.Window.X = x
s.Window.Y = y
s.Window.Width = width
@ -190,31 +190,31 @@ func (sm *SettingsManager) UpdateWindowState(x, y, width, height int, maximized
})
}
// state := sm.GetWindowState()
// state := settingsManager.GetWindowState()
// if state.Maximized { ... }
func (sm *SettingsManager) GetWindowState() WindowState {
sm.mu.RLock()
defer sm.mu.RUnlock()
return sm.settings.Window
func (settingsManager *SettingsManager) GetWindowState() WindowState {
settingsManager.mu.RLock()
defer settingsManager.mu.RUnlock()
return settingsManager.settings.Window
}
// if err := sm.SetStartOnBoot(true); err != nil { return err }
func (sm *SettingsManager) SetStartOnBoot(enabled bool) error {
return sm.Update(func(s *AppSettings) {
// if err := settingsManager.SetStartOnBoot(true); err != nil { return err }
func (settingsManager *SettingsManager) SetStartOnBoot(enabled bool) error {
return settingsManager.Update(func(s *AppSettings) {
s.StartOnBoot = enabled
})
}
// if err := sm.SetAutostartMiners(true); err != nil { return err }
func (sm *SettingsManager) SetAutostartMiners(enabled bool) error {
return sm.Update(func(s *AppSettings) {
// if err := settingsManager.SetAutostartMiners(true); err != nil { return err }
func (settingsManager *SettingsManager) SetAutostartMiners(enabled bool) error {
return settingsManager.Update(func(s *AppSettings) {
s.AutostartMiners = enabled
})
}
// if err := sm.SetCPUThrottle(true, 70); err != nil { return err }
func (sm *SettingsManager) SetCPUThrottle(enabled bool, percent int) error {
return sm.Update(func(s *AppSettings) {
// if err := settingsManager.SetCPUThrottle(true, 70); err != nil { return err }
func (settingsManager *SettingsManager) SetCPUThrottle(enabled bool, percent int) error {
return settingsManager.Update(func(s *AppSettings) {
s.EnableCPUThrottle = enabled
if percent > 0 && percent <= 100 {
s.CPUThrottlePercent = percent
@ -222,9 +222,9 @@ func (sm *SettingsManager) SetCPUThrottle(enabled bool, percent int) error {
})
}
// sm.SetMinerDefaults(MinerDefaults{DefaultPool: "pool.minexmr.com:4444", CPUMaxThreadsHint: 50})
func (sm *SettingsManager) SetMinerDefaults(defaults MinerDefaults) error {
return sm.Update(func(s *AppSettings) {
// settingsManager.SetMinerDefaults(MinerDefaults{DefaultPool: "pool.minexmr.com:4444", CPUMaxThreadsHint: 50})
func (settingsManager *SettingsManager) SetMinerDefaults(defaults MinerDefaults) error {
return settingsManager.Update(func(s *AppSettings) {
s.MinerDefaults = defaults
})
}