Files
mp-qvyun/backend/common/service/tasks/tasks.go
2024-12-04 20:02:30 +08:00

44 lines
1.1 KiB
Go

package tasks
import (
"backend/modules/medias"
"backend/modules/tasks"
"backend/providers/app"
"backend/providers/postgres"
"git.ipao.vip/rogeecn/atom"
"git.ipao.vip/rogeecn/atom/container"
"github.com/spf13/cobra"
)
func defaultProviders(providers ...container.ProviderContainer) container.Providers {
return append(container.Providers{
app.DefaultProvider(),
postgres.DefaultProvider(),
}, providers...)
}
func Command() atom.Option {
return atom.Command(
atom.Name("tasks"),
atom.Short("run tasks"),
atom.Command(
atom.Name("discover"),
atom.Arguments(func(cmd *cobra.Command) {
cmd.Flags().String("from", "", "from path")
cmd.Flags().String("to", "", "to path")
}),
atom.Providers(defaultProviders().With(
tasks.Provide,
medias.Provide,
)),
atom.RunE(func(cmd *cobra.Command, args []string) error {
return container.Container.Invoke(func(task *tasks.DiscoverMedias) error {
from, to := cmd.Flag("from").Value.String(), cmd.Flag("to").Value.String()
return task.RunE(from, to)
})
}),
),
)
}