mirror of
https://git.sr.ht/~phw/scotty
synced 2025-04-30 05:37:05 +02:00
Transfer command refactoring
Make transfer command processing even more modular
This commit is contained in:
parent
7c85ba05ab
commit
a9e07915ce
7 changed files with 236 additions and 179 deletions
22
cmd/loves.go
22
cmd/loves.go
|
@ -18,8 +18,11 @@ package cmd
|
|||
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
"go.uploadedlobster.com/scotty/internal/backends"
|
||||
"go.uploadedlobster.com/scotty/internal/cli"
|
||||
"go.uploadedlobster.com/scotty/internal/models"
|
||||
"go.uploadedlobster.com/scotty/internal/storage"
|
||||
)
|
||||
|
||||
// lovesCmd represents the loves command
|
||||
|
@ -28,15 +31,18 @@ var lovesCmd = &cobra.Command{
|
|||
Short: "Transfer loves between two services",
|
||||
Long: `Transfers loves between two configured services.`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
exp, imp, err := resolveBackends[models.LovesExport, models.LovesImport, models.LovesResult](cmd)
|
||||
db, err := storage.New(viper.GetString("database"))
|
||||
cobra.CheckErr(err)
|
||||
c, err := cli.NewTransferCmd[
|
||||
models.LovesExport,
|
||||
models.LovesImport,
|
||||
models.LovesResult,
|
||||
](cmd, &db, "loves")
|
||||
cobra.CheckErr(err)
|
||||
exp := backends.LovesExportProcessor{Backend: c.ExpBackend}
|
||||
imp := backends.LovesImportProcessor{Backend: c.ImpBackend}
|
||||
err = c.Transfer(exp, imp)
|
||||
cobra.CheckErr(err)
|
||||
exp.processor = backends.LovesExportProcessor{
|
||||
Backend: exp.backend,
|
||||
}
|
||||
imp.processor = backends.LovesImportProcessor{
|
||||
Backend: imp.backend,
|
||||
}
|
||||
cmdExportImport(cmd, "loves", exp, imp)
|
||||
},
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue