mirror of
https://git.sr.ht/~joren/streamrip-go
synced 2026-06-17 15:05:39 +02:00
improve CLI error semantics and soundcloud canonicalization
Auto-upgrade outdated configs on startup, add actionable SSL verification hints in rip error paths, and harden SoundCloud search/metadata with canonical URL handling and richer source IDs.
This commit is contained in:
@@ -171,7 +171,7 @@ func Load(path string) (*Config, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var data ConfigData
|
||||
data := DefaultConfigData()
|
||||
if err = toml.Unmarshal(raw, &data); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -184,6 +184,27 @@ func Load(path string) (*Config, error) {
|
||||
return &Config{Path: resolvedPath, File: data, Session: cloneConfigData(data)}, nil
|
||||
}
|
||||
|
||||
func UpgradeOutdated(path string) (string, error) {
|
||||
resolvedPath, err := resolvePath(path)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
raw, err := os.ReadFile(resolvedPath)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
data := DefaultConfigData()
|
||||
if err = toml.Unmarshal(raw, &data); err != nil {
|
||||
return "", err
|
||||
}
|
||||
applyRuntimeDefaults(&data)
|
||||
data.Misc.Version = CurrentConfigVersion
|
||||
if err = saveConfigData(resolvedPath, data); err != nil {
|
||||
return "", err
|
||||
}
|
||||
return resolvedPath, nil
|
||||
}
|
||||
|
||||
func (c *Config) SaveFile() error {
|
||||
return saveConfigData(c.Path, c.File)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user