40 lines
967 B
Go
40 lines
967 B
Go
package task
|
|
|
|
import (
|
|
"backend/modules/tasks"
|
|
"backend/providers/app"
|
|
|
|
"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(),
|
|
}, providers...)
|
|
}
|
|
|
|
func Command() atom.Option {
|
|
return atom.Command(
|
|
atom.Name("tasks"),
|
|
atom.Short("run tasks"),
|
|
atom.Providers(defaultProviders().With(
|
|
tasks.Provide,
|
|
)),
|
|
atom.Command(
|
|
atom.Name("discover"),
|
|
atom.Arguments(func(cmd *cobra.Command) {
|
|
cmd.Flags().String("from", "", "from path")
|
|
cmd.Flags().String("to", "", "to path")
|
|
}),
|
|
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)
|
|
})
|
|
}),
|
|
),
|
|
)
|
|
}
|