mirror of
https://github.com/qdm12/gluetun.git
synced 2026-06-10 14:22:30 +02:00
8f82376996
- migrate persisted server data storage from `/gluetun/servers.json` to `/gluetun/servers/` - add `STORAGE_SERVERS_ENABLED=on` to enable or disable on-disk server data storage - add `STORAGE_SERVERS_DIRECTORY_PATH=/gluetun/servers` to configure where per-provider server files are stored - keep backward compatibility with legacy `STORAGE_FILEPATH=/gluetun/servers.json` - automatically read and migrate legacy `/gluetun/servers.json` into the new `/gluetun/servers/` layout when needed - try to remove the legacy servers file after a successful migration to the new storage directory - switch persisted server data from one large JSON file to a manifest plus per-provider JSON files - add `UPDATER_PREFER_DIRECT_DOWNLOAD` to allow preferring direct download of provider server data - keep deprecated updater flags `-enduser` and `-maintainer` as no-op warnings for backward compatibility - preserve compatibility checks so persisted server data is discarded when its schema version no longer matches the built-in data - allow preferred persisted provider data to override built-in data when versions match - servers data now lives at https://github.com/qdm12/gluetun-servers/tree/main/pkg/servers
40 lines
1.0 KiB
Go
40 lines
1.0 KiB
Go
package cli
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/qdm12/gluetun/internal/configuration/settings"
|
|
"github.com/qdm12/gluetun/internal/configuration/sources/files"
|
|
"github.com/qdm12/gluetun/internal/configuration/sources/secrets"
|
|
"github.com/qdm12/gluetun/internal/storage"
|
|
"github.com/qdm12/gosettings/reader"
|
|
"github.com/qdm12/gosettings/reader/sources/env"
|
|
)
|
|
|
|
type storageSetupLogger interface {
|
|
storage.Logger
|
|
files.Warner
|
|
}
|
|
|
|
func setupStorage(logger storageSetupLogger) (s *storage.Storage, err error) {
|
|
settingsReader := reader.New(reader.Settings{
|
|
Sources: []reader.Source{
|
|
secrets.New(logger),
|
|
files.New(logger),
|
|
env.New(env.Settings{}),
|
|
},
|
|
})
|
|
var settings settings.Storage
|
|
err = settings.Read(settingsReader)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("reading storage settings: %w", err)
|
|
}
|
|
settings.SetDefaults()
|
|
storage, err := storage.New(logger, *settings.ServersEnabled, settings.ServersPath,
|
|
settings.LegacyServersFilepath)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("creating storage: %w", err)
|
|
}
|
|
return storage, nil
|
|
}
|