44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
package tasks
|
|
|
|
import (
|
|
"backend/modules/medias"
|
|
"backend/modules/tasks/discover"
|
|
"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(
|
|
medias.Provide,
|
|
discover.Provide,
|
|
)),
|
|
atom.RunE(func(cmd *cobra.Command, args []string) error {
|
|
return container.Container.Invoke(func(task *discover.DiscoverMedias) error {
|
|
from, to := cmd.Flag("from").Value.String(), cmd.Flag("to").Value.String()
|
|
return task.RunE(from, to)
|
|
})
|
|
}),
|
|
),
|
|
)
|
|
}
|