smallweb
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455package cmd
import ( "fmt"
"github.com/pomdtr/smallweb/internal/app" "github.com/pomdtr/smallweb/internal/worker" "github.com/spf13/cobra")
func NewCmdRun() *cobra.Command { cmd := &cobra.Command{ Use: "run <app> [args...]", Short: "Run an app cli", ValidArgsFunction: completeApp, PreRunE: func(cmd *cobra.Command, args []string) error { if _, err := checkDenoVersion(); err != nil { return err }
return nil }, RunE: func(cmd *cobra.Command, args []string) error { if len(args) == 0 { return cmd.Help() }
if args[0] == "-h" || args[0] == "--help" { return cmd.Help() }
a, err := app.LoadApp(args[0], k.String("dir"), k.String("domain")) if err != nil { return fmt.Errorf("failed to load app: %w", err) }
wk := worker.NewWorker(a, k.Bool(fmt.Sprintf("apps.%s.admin", a.Name)), nil) command, err := wk.Command(cmd.Context(), args[1:]) if err != nil { return fmt.Errorf("failed to create command: %w", err) }
cmd.SilenceErrors = true
command.Stdin = cmd.InOrStdin() command.Stdout = cmd.OutOrStdout() command.Stderr = cmd.ErrOrStderr() return command.Run() }, }
cmd.Flags().SetInterspersed(false) return cmd}