feat: added cli command for previewing cron schedules

main
Jef Roosens 2022-05-26 09:15:49 +02:00
parent c0b739035b
commit bd4bb9a9fb
Signed by untrusted user: Jef Roosens
GPG Key ID: B75D4F293C7052DB
2 changed files with 36 additions and 0 deletions

View File

@ -0,0 +1,34 @@
module schedule
import cli
import cron.expression { parse_expression }
// cmd returns the cli submodule for previewing a cron schedule.
pub fn cmd() cli.Command {
return cli.Command{
name: 'schedule'
description: 'Preview the behavior of a cron schedule.'
flags: [
cli.Flag{
name: 'count'
description: 'How many scheduled times to show.'
flag: cli.FlagType.int
default_value: ['5']
},
]
execute: fn (cmd cli.Command) ? {
exp := parse_expression(cmd.args.join(' '))?
mut t := exp.next_from_now()?
println(t)
count := cmd.flags.get_int('count')?
for _ in 1 .. count {
t = exp.next(t)?
println(t)
}
}
}
}

View File

@ -5,6 +5,7 @@ import server
import cli import cli
import console.git import console.git
import console.logs import console.logs
import console.schedule
import cron import cron
fn main() { fn main() {
@ -27,6 +28,7 @@ fn main() {
git.cmd(), git.cmd(),
cron.cmd(), cron.cmd(),
logs.cmd(), logs.cmd(),
schedule.cmd(),
] ]
} }
app.setup() app.setup()