diff options
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/gotosocial/action/server/server.go | 20 | ||||
-rw-r--r-- | cmd/gotosocial/action/testrig/testrig.go | 7 |
2 files changed, 20 insertions, 7 deletions
diff --git a/cmd/gotosocial/action/server/server.go b/cmd/gotosocial/action/server/server.go index be4e2cc54..b8bf62274 100644 --- a/cmd/gotosocial/action/server/server.go +++ b/cmd/gotosocial/action/server/server.go @@ -24,9 +24,11 @@ import ( "net/http" "os" "os/signal" + "path" "syscall" "codeberg.org/gruf/go-store/kv" + "codeberg.org/gruf/go-store/storage" "github.com/sirupsen/logrus" "github.com/spf13/viper" "github.com/superseriousbusiness/gotosocial/cmd/gotosocial/action" @@ -97,16 +99,26 @@ var Start action.GTSAction = func(ctx context.Context) error { // Open the storage backend storageBasePath := viper.GetString(config.Keys.StorageLocalBasePath) - storage, err := kv.OpenFile(storageBasePath, nil) + storage, err := kv.OpenFile(storageBasePath, &storage.DiskConfig{ + // Put the store lockfile in the storage dir itself. + // Normally this would not be safe, since we could end up + // overwriting the lockfile if we store a file called 'store.lock'. + // However, in this case it's OK because the keys are set by + // GtS and not the user, so we know we're never going to overwrite it. + LockFile: path.Join(storageBasePath, "store.lock"), + }) if err != nil { return fmt.Errorf("error creating storage backend: %s", err) } // build backend handlers - mediaHandler := media.New(dbService, storage) + mediaManager, err := media.NewManager(dbService, storage) + if err != nil { + return fmt.Errorf("error creating media manager: %s", err) + } oauthServer := oauth.New(ctx, dbService) transportController := transport.NewController(dbService, &federation.Clock{}, http.DefaultClient) - federator := federation.NewFederator(dbService, federatingDB, transportController, typeConverter, mediaHandler) + federator := federation.NewFederator(dbService, federatingDB, transportController, typeConverter, mediaManager) // decide whether to create a noop email sender (won't send emails) or a real one var emailSender email.Sender @@ -198,7 +210,7 @@ var Start action.GTSAction = func(ctx context.Context) error { } } - gts, err := gotosocial.NewServer(dbService, router, federator) + gts, err := gotosocial.NewServer(dbService, router, federator, mediaManager) if err != nil { return fmt.Errorf("error creating gotosocial service: %s", err) } diff --git a/cmd/gotosocial/action/testrig/testrig.go b/cmd/gotosocial/action/testrig/testrig.go index 33f5217e4..d79ba3ea4 100644 --- a/cmd/gotosocial/action/testrig/testrig.go +++ b/cmd/gotosocial/action/testrig/testrig.go @@ -80,11 +80,12 @@ var Start action.GTSAction = func(ctx context.Context) error { Body: r, }, nil }), dbService) - federator := testrig.NewTestFederator(dbService, transportController, storageBackend) + mediaManager := testrig.NewTestMediaManager(dbService, storageBackend) + federator := testrig.NewTestFederator(dbService, transportController, storageBackend, mediaManager) emailSender := testrig.NewEmailSender("./web/template/", nil) - processor := testrig.NewTestProcessor(dbService, storageBackend, federator, emailSender) + processor := testrig.NewTestProcessor(dbService, storageBackend, federator, emailSender, mediaManager) if err := processor.Start(ctx); err != nil { return fmt.Errorf("error starting processor: %s", err) } @@ -156,7 +157,7 @@ var Start action.GTSAction = func(ctx context.Context) error { } } - gts, err := gotosocial.NewServer(dbService, router, federator) + gts, err := gotosocial.NewServer(dbService, router, federator, mediaManager) if err != nil { return fmt.Errorf("error creating gotosocial service: %s", err) } |