ax(mining): rename SettingsManager receiver sm to settingsManager
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:
parent
35da3edcab
commit
9a95c8be54
1 changed files with 51 additions and 51 deletions
|
|
@ -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
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue