fs storage

This commit is contained in:
Ilia Denisov
2026-03-13 21:07:23 +02:00
committed by GitHub
parent 43039a79bf
commit 9ade76e21d
117 changed files with 1734 additions and 176 deletions
+7 -2
View File
@@ -5,6 +5,7 @@ import (
"errors"
"fmt"
"galaxy/loader"
"galaxy/storage/fs"
"os"
"os/signal"
@@ -28,8 +29,12 @@ func main() {
ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt)
defer cancel()
app := app.New()
l, err := loader.NewLoader(ctx, app, nil)
app := app.NewWithID("galaxy-client")
s, err := fs.NewFS(app.Storage().RootURI().Path())
if err != nil {
return
}
l, err := loader.NewLoader(ctx, s, nil, app)
if err != nil {
return
}
+12 -14
View File
@@ -16,9 +16,9 @@ import (
type ClientInit func(context.Context, storage.UIStorage, connector.UIConnector, fyne.App) (mc.Client, error)
type loader struct {
conn connector.Connector
cli mc.Client
storagePath string
s storage.Storage
conn connector.Connector
cli mc.Client
}
const (
@@ -30,27 +30,25 @@ var (
checkVersionTimeout = time.Minute * 60
)
func NewLoader(ctx context.Context, app fyne.App, conn connector.Connector) (*loader, error) {
storagePath, err := initStorage(app)
if err != nil {
return nil, err
}
var s storage.Storage = nil
cli, err := loadClientPlugin(ctx, s, conn, app, "./client.so", "NewClient")
func NewLoader(ctx context.Context, s storage.Storage, conn connector.Connector, app fyne.App) (*loader, error) {
cli, err := loadClientPlugin(ctx, s, conn, app, "./client.so", "Factory")
if err != nil {
return nil, err
}
l := &loader{
conn: conn,
cli: cli,
storagePath: storagePath,
conn: conn,
cli: cli,
s: s,
}
return l, nil
}
func (l *loader) Run(ctx context.Context) error {
final := make(chan struct{}, 1)
go l.backgroundLoop(ctx, final)
if l.conn != nil {
go l.backgroundLoop(ctx, final)
defer func() { final <- struct{}{} }()
}
if err := l.cli.Run(); err != nil {
return err
}
-8
View File
@@ -4,8 +4,6 @@ import (
"galaxy/connector"
"runtime"
"slices"
"fyne.io/fyne/v2"
)
func resolvePluginFile(version string) string {
@@ -25,9 +23,3 @@ func latestVersion(versions []connector.VersionInfo) (connector.VersionInfo, boo
slices.SortFunc(versions, func(a, b connector.VersionInfo) int { return compareSemver(b.Version, a.Version) })
return versions[0], true
}
// initStorage returns filesystem storage root or error if initialization fails.
func initStorage(app fyne.App) (string, error) {
_ = app.Storage() // use fyne.App's Storage
return "", nil
}