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) }) }), ), ) }