this repo has no description smallweb.run
smallweb
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix cron command

pomdtr 79e88edd fa56e647

+32 -8
+32 -8
cmd/crons.go
··· 5 5 "fmt" 6 6 "log" 7 7 "os" 8 + "path/filepath" 8 9 "slices" 9 10 "strings" 10 11 "time" ··· 26 27 func NewCmdCrons() *cobra.Command { 27 28 var flags struct { 28 29 json bool 29 - app string 30 + all bool 30 31 } 31 32 32 33 cmd := &cobra.Command{ 33 - Use: "crons", 34 - Aliases: []string{"cron"}, 35 - Args: cobra.NoArgs, 36 - Short: "List cron jobs", 34 + Use: "crons [app]", 35 + Aliases: []string{"cron"}, 36 + Args: cobra.MaximumNArgs(1), 37 + ValidArgsFunction: completeApp, 38 + PreRunE: func(cmd *cobra.Command, args []string) error { 39 + if len(args) > 0 && flags.all { 40 + return fmt.Errorf("cannot set both --all and specify an app") 41 + } 42 + 43 + return nil 44 + }, 45 + Short: "List cron jobs", 37 46 RunE: func(cmd *cobra.Command, args []string) error { 47 + var appName string 48 + if len(args) > 0 { 49 + appName = args[0] 50 + } else if !flags.all { 51 + cwd, err := os.Getwd() 52 + if err != nil { 53 + return fmt.Errorf("failed to get current directory: %w", err) 54 + } 55 + 56 + if filepath.Dir(cwd) != k.String("dir") { 57 + return fmt.Errorf("no app specified and not in an app directory") 58 + } 59 + 60 + appName = filepath.Base(cwd) 61 + } 62 + 38 63 apps, err := app.ListApps(k.String("dir")) 39 64 if err != nil { 40 65 return fmt.Errorf("failed to list apps: %w", err) ··· 42 67 43 68 crons := make([]CronItem, 0) 44 69 for _, name := range apps { 45 - if cmd.Flags().Changed("app") && flags.app != name { 70 + if appName != "" && name != appName { 46 71 continue 47 72 } 48 73 ··· 106 131 }, 107 132 } 108 133 109 - cmd.Flags().StringVar(&flags.app, "app", "", "filter by app") 110 134 cmd.Flags().BoolVar(&flags.json, "json", false, "output as json") 111 - _ = cmd.RegisterFlagCompletionFunc("app", completeApp) 135 + cmd.Flags().BoolVar(&flags.all, "all", false, "show all cron jobs") 112 136 113 137 return cmd 114 138 }