diff --git a/server/internal/command/appcmd/appcmd.go b/server/internal/command/appcmd/appcmd.go index c8ac94fe..ced00d8b 100644 --- a/server/internal/command/appcmd/appcmd.go +++ b/server/internal/command/appcmd/appcmd.go @@ -12,7 +12,6 @@ import ( ) func SetupCommand(db **db.DbHandler, debug bool) *cobra.Command { - var cs storage.Storage cmd := &cobra.Command{ Use: "app", Short: "Server Administration", @@ -25,19 +24,17 @@ func SetupCommand(db **db.DbHandler, debug bool) *cobra.Command { logrus.Fatal(err) } - var err error - if cs, err = storage.Open(*db, context.Background(), viper.GetString("content-dir")); err != nil { + if err := storage.Create(context.Background(), *db, viper.GetString("content-dir")); err != nil { + logrus.Fatal(err) + } + if err := core.Create(context.Background(), *db, storage.Default, debug); err != nil { logrus.Fatal(err) - } else { - if err := core.Create(context.Background(), *db, cs, debug); err != nil { - logrus.Fatal(err) - } } }, } flags := cmd.Flags() flags.Bool("no-auto-migrate", false, "Do not automatically migrate database schema") - viper.BindPFlag("no_auto_migrate", flags.Lookup("auto-migrate")) + viper.BindPFlag("no_auto_migrate", flags.Lookup("no-auto-migrate")) flags.StringP("content-dir", "C", "content", "Content Directory") viper.BindPFlag("content_dir", flags.Lookup("content-dir")) @@ -46,7 +43,7 @@ func SetupCommand(db **db.DbHandler, debug bool) *cobra.Command { setupServeCommand(), setupUserCommand(), setupResourceCommand(), - setupStorageCommand(cs), + setupStorageCommand(), }...) return cmd diff --git a/server/internal/command/appcmd/storage.go b/server/internal/command/appcmd/storage.go index 35a586ce..88278f9a 100644 --- a/server/internal/command/appcmd/storage.go +++ b/server/internal/command/appcmd/storage.go @@ -12,19 +12,19 @@ import ( "github.com/spf13/cobra" ) -func setupStorageCommand(cs storage.Storage) *cobra.Command { +func setupStorageCommand() *cobra.Command { cmd := &cobra.Command{ Use: "storage", Short: "Storage Management", } cmd.AddCommand([]*cobra.Command{ - setupStorageCreateCommand(cs), - setupStorageListCommand(cs), + setupStorageCreateCommand(), + setupStorageListCommand(), }...) return cmd } -func setupStorageCreateCommand(cs storage.Storage) *cobra.Command { +func setupStorageCreateCommand() *cobra.Command { return &cobra.Command{ Use: "create name driver", Short: "Create new storage backend", @@ -49,7 +49,7 @@ func setupStorageCreateCommand(cs storage.Storage) *cobra.Command { params[paramName] = val } - if err := cs.CreateBackend(context.Background(), name, driver, params); err != nil { + if err := storage.Default.CreateBackend(context.Background(), name, driver, params); err != nil { logrus.Fatal(err) } @@ -58,13 +58,13 @@ func setupStorageCreateCommand(cs storage.Storage) *cobra.Command { } } -func setupStorageListCommand(cs storage.Storage) *cobra.Command { +func setupStorageListCommand() *cobra.Command { return &cobra.Command{ Use: "list", Short: "List all storage backends", Run: func(cmd *cobra.Command, args []string) { logrus.Info("Available storage backends:") - for k, v := range cs.ListBackends() { + for k, v := range storage.Default.ListBackends() { logrus.Info(fmt.Sprintf("%s: %s", k, v)) } }, diff --git a/server/internal/storage/storage.go b/server/internal/storage/storage.go index 2b008bd2..afb430ec 100644 --- a/server/internal/storage/storage.go +++ b/server/internal/storage/storage.go @@ -26,15 +26,18 @@ type storage struct { defaultBackend Backend } -func Open(db *db.DbHandler, ctx context.Context, contentDir string) (Storage, error) { +var Default Storage + +func Create(ctx context.Context, db *db.DbHandler, contentDir string) error { if backends, err := restoreBackends(db, ctx); err != nil { - return nil, err + return err } else { - return storage{ + Default = storage{ db: db, backends: backends, defaultBackend: localStorage{name: "", root: contentDir}, - }, nil + } + return nil } }