2020-08-25 19:38:50 -04:00
|
|
|
package storage
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"io/ioutil"
|
|
|
|
|
"os"
|
|
|
|
|
|
|
|
|
|
"github.com/qdm12/gluetun/internal/models"
|
|
|
|
|
"github.com/qdm12/golibs/logging"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Storage interface {
|
2020-08-28 08:17:04 -04:00
|
|
|
SyncServers(hardcodedServers models.AllServers, write bool) (allServers models.AllServers, err error)
|
|
|
|
|
FlushToFile(servers models.AllServers) error
|
2020-08-25 19:38:50 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type storage struct {
|
|
|
|
|
osStat func(name string) (os.FileInfo, error)
|
|
|
|
|
readFile func(filename string) (data []byte, err error)
|
|
|
|
|
writeFile func(filename string, data []byte, perm os.FileMode) error
|
|
|
|
|
logger logging.Logger
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func New(logger logging.Logger) Storage {
|
|
|
|
|
return &storage{
|
|
|
|
|
osStat: os.Stat,
|
|
|
|
|
readFile: ioutil.ReadFile,
|
|
|
|
|
writeFile: ioutil.WriteFile,
|
|
|
|
|
logger: logger.WithPrefix("storage: "),
|
|
|
|
|
}
|
|
|
|
|
}
|