diff options
Diffstat (limited to 'internal/config.go')
| -rw-r--r-- | internal/config.go | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/internal/config.go b/internal/config.go index 47f773e..a135ac6 100644 --- a/internal/config.go +++ b/internal/config.go @@ -25,11 +25,11 @@ func (config *Config) GetFilename() string { func (config *Config) Save(readStruct interface{}) error { configDirErr := EnsureDirectory(config.Directory) if configDirErr != nil { - return configDirErr + return &ConfigSaveError{Err: configDirErr} } jsonString, marshalErr := json.Marshal(readStruct) if marshalErr != nil { - return marshalErr + return &ConfigSaveError{Err: marshalErr} } return ioutil.WriteFile(config.GetFilename(), jsonString, 0o644) } @@ -37,7 +37,23 @@ func (config *Config) Save(readStruct interface{}) error { func (config *Config) Load(writeStruct interface{}) error { bytes, readErr := ioutil.ReadFile(config.GetFilename()) if readErr != nil { - return readErr + return &ConfigLoadError{Err: readErr} } return json.Unmarshal(bytes, writeStruct) } + +type ConfigSaveError struct { + Err error +} + +func (e *ConfigSaveError) Error() string { + return fmt.Sprintf("failed to save config with error: %v", e.Err) +} + +type ConfigLoadError struct { + Err error +} + +func (e *ConfigLoadError) Error() string { + return fmt.Sprintf("failed to load config with error: %v", e.Err) +} |
