Files
galaxy-game/pkg/storage/fs/fs.go
T
2026-03-13 16:50:13 +02:00

28 lines
637 B
Go

// fs implements Storage on filesystem
package fs
import (
"errors"
"galaxy/util"
)
type fs struct {
rootPath string
}
// NewStorage returns on-filesystem implementation of the "galaxy/storage.Storage" with root located at rootPath.
// rootPath must me a directory and has write access to the current user. If initial checks failed, return nil and non-nil error.
func NewFS(rootPath string) (*fs, error) {
ok, err := util.Writable(rootPath)
if err != nil {
return nil, err
}
if !ok {
return nil, errors.New("user does not have write permissions to the storage root")
}
s := &fs{
rootPath: rootPath,
}
return s, nil
}