Skip to content

Commit d3e7d50

Browse files
committed
add back a run method
1 parent f805683 commit d3e7d50

File tree

7 files changed

+223
-212
lines changed

7 files changed

+223
-212
lines changed

example/cron/smallweb.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"crons": [
33
{
44
"schedule": "* * * * *",
5-
"args": []
5+
"name": "example"
66
}
77
]
88
}

go.mod

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ require (
104104
github.com/cloudflare/circl v1.6.3 // indirect
105105
github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 // indirect
106106
github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
107-
github.com/danielgtaylor/huma/v2 v2.37.2 // indirect
108107
github.com/envoyproxy/go-control-plane/envoy v1.37.0 // indirect
109108
github.com/envoyproxy/protoc-gen-validate v1.3.3 // indirect
110109
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
@@ -138,7 +137,6 @@ require (
138137
github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.187 // indirect
139138
github.com/inconshreveable/mousetrap v1.1.0 // indirect
140139
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12 // indirect
141-
github.com/julienschmidt/httprouter v1.3.0 // indirect
142140
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
143141
github.com/knadh/koanf/maps v0.1.2 // indirect
144142
github.com/kr/fs v0.1.0 // indirect

go.sum

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,6 @@ github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3
175175
github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
176176
github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s=
177177
github.com/creack/pty v1.1.24/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE=
178-
github.com/danielgtaylor/huma/v2 v2.37.2 h1:Nf9vjy2sxBJFaupPlthXL/Hy2+LurfVbaKHmCMEI7xE=
179-
github.com/danielgtaylor/huma/v2 v2.37.2/go.mod h1:95S04G/lExFRYlBkKaBaZm9lVmxRmqX9f2CgoOZ11AM=
180178
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
181179
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
182180
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
@@ -306,8 +304,6 @@ github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
306304
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
307305
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12 h1:9Nu54bhS/H/Kgo2/7xNSUuC5G28VR8ljfrLKU2G4IjU=
308306
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12/go.mod h1:TBzl5BIHNXfS9+C35ZyJaklL7mLDbgUkcgXzSLa8Tk0=
309-
github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=
310-
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
311307
github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU=
312308
github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k=
313309
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=

internal/cmd/crons.go

Lines changed: 43 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,9 @@ func NewCmdCronList() *cobra.Command {
3939
}
4040

4141
cmd := &cobra.Command{
42-
Use: "list",
43-
Aliases: []string{"cron"},
44-
Short: "List cron jobs",
45-
ValidArgsFunction: completeApp,
42+
Use: "list",
43+
Aliases: []string{"cron"},
44+
Short: "List cron jobs",
4645
RunE: func(cmd *cobra.Command, args []string) error {
4746
var crons []CronItem
4847
apps, err := app.LookupApps(k.String("dir"))
@@ -127,6 +126,44 @@ func NewCmdCronList() *cobra.Command {
127126
return cmd
128127
}
129128

129+
func NewCmdCronTrigger() *cobra.Command {
130+
var flags struct {
131+
app string
132+
}
133+
134+
cmd := &cobra.Command{
135+
Use: "trigger <name>",
136+
Args: cobra.ExactArgs(1),
137+
RunE: func(cmd *cobra.Command, args []string) error {
138+
a, err := app.LoadApp(flags.app, k.String("dir"), k.String("domain"))
139+
if err != nil {
140+
return ExitError{1}
141+
}
142+
143+
var job *app.CronJob
144+
for _, j := range a.Config.Crons {
145+
if j.Name == args[0] {
146+
job = &j
147+
break
148+
}
149+
}
150+
151+
if job == nil {
152+
return ExitError{1}
153+
}
154+
155+
wk := worker.NewWorker(a, nil)
156+
if err := wk.TriggerCron(cmd.Context(), *job); err != nil {
157+
return ExitError{1}
158+
}
159+
160+
return nil
161+
},
162+
}
163+
164+
return cmd
165+
}
166+
130167
func CronRunner(logger *slog.Logger) *cron.Cron {
131168
parser := cron.NewParser(cron.Minute | cron.Hour | cron.Dom | cron.Month | cron.Dow | cron.Descriptor)
132169
c := cron.New(cron.WithParser(parser))
@@ -164,52 +201,14 @@ func CronRunner(logger *slog.Logger) *cron.Cron {
164201
wk := worker.NewWorker(a, nil)
165202

166203
logger.Info("running cron job", "app", appname, "name", job.Name, "schedule", job.Schedule)
167-
go func() {
204+
go func(job app.CronJob) {
168205
if err := wk.TriggerCron(context.Background(), job); err != nil {
169206
logger.Error("failed to run command", "app", appname, "name", job.Name, "schedule", job.Schedule, "error", err)
170207
}
171-
}()
208+
}(job)
172209
}
173210
}
174211
})
175212

176213
return c
177214
}
178-
179-
func NewCmdCronTrigger() *cobra.Command {
180-
var flags struct {
181-
app string
182-
}
183-
184-
cmd := &cobra.Command{
185-
Use: "trigger <name>",
186-
Args: cobra.ExactArgs(1),
187-
RunE: func(cmd *cobra.Command, args []string) error {
188-
a, err := app.LoadApp(flags.app, k.String("dir"), k.String("domain"))
189-
if err != nil {
190-
return ExitError{1}
191-
}
192-
193-
var job *app.CronJob
194-
for _, j := range a.Config.Crons {
195-
if j.Name == args[0] {
196-
job = &j
197-
break
198-
}
199-
}
200-
201-
if job == nil {
202-
return ExitError{1}
203-
}
204-
205-
wk := worker.NewWorker(a, nil)
206-
if err := wk.TriggerCron(cmd.Context(), *job); err != nil {
207-
return ExitError{1}
208-
}
209-
210-
return nil
211-
},
212-
}
213-
214-
return cmd
215-
}

internal/cmd/up.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -322,18 +322,18 @@ func NewCmdUp() *cobra.Command {
322322
wish.WithMiddleware(
323323
func(next ssh.Handler) ssh.Handler {
324324
return func(sess ssh.Session) {
325-
execPath, err := os.Executable()
326-
if err != nil {
327-
fmt.Fprintf(sess.Stderr(), "failed to get executable path: %v\n", err)
328-
sess.Exit(1)
329-
return
330-
}
325+
execPath, err := os.Executable()
326+
if err != nil {
327+
fmt.Fprintf(sess.Stderr(), "failed to get executable path: %v\n", err)
328+
sess.Exit(1)
329+
return
330+
}
331331

332332
cmd := exec.Command(execPath, "--dir", k.String("dir"), "--domain", k.String("domain"))
333-
cmd.Args = append(cmd.Args, sess.Command()...)
334-
cmd.Env = os.Environ()
333+
cmd.Args = append(cmd.Args, sess.Command()...)
334+
cmd.Env = os.Environ()
335335

336-
cmd.Env = append(cmd.Env, "SMALLWEB_DISABLED_COMMANDS=up,config,init,doctor,completion")
336+
cmd.Env = append(cmd.Env, "SMALLWEB_DISABLED_COMMANDS=up,config,init,doctor,completion")
337337

338338
ptyReq, winCh, isPty := sess.Pty()
339339
if isPty {
@@ -580,7 +580,7 @@ func (me *Handler) GetWorker(appname string, rootDir, domain string) (*worker.Wo
580580
}
581581

582582
wk := worker.NewWorker(a, me.logger.With("logger", "console", "app", appname))
583-
if err := wk.Start(); err != nil {
583+
if err := wk.StartServer(); err != nil {
584584
return nil, fmt.Errorf("failed to start worker: %w", err)
585585
}
586586

0 commit comments

Comments
 (0)