cron is a Go library that parses a cron expression and outputs a human readable description of the cron schedule.
For example, given the expression */5 * * * *
it will output Every 5 minutes
.
Translated to Go from cron-expression-descriptor (C#) via cRonstrue (Javascript).
Original Author & Credit: Brady Holt (http://www.geekytidbits.com).
* / , - ? L W #
cron
module can be used with both Go module (>= 1.11) and earlier Go versions.
go get -u -v github.com/lnquy/cron
// Init with default EN locale exprDesc, _ := cron.NewDescriptor() desc, _ := exprDesc.ToDescription("* * * * *", cron.Locale_en) // "Every minute" desc, _ := exprDesc.ToDescription("0 23 ? * MON-FRI", cron.Locale_en) // "At 11:00 PM, Monday through Friday" desc, _ := exprDesc.ToDescription("23 14 * * SUN#2", cron.Locale_en) // "At 02:23 PM, on the second Sunday of the month" // Init with custom configs exprDesc, _ := cron.NewDescriptor( cron.Use24HourTimeFormat(true), cron.DayOfWeekStartsAtOne(true), cron.Verbose(true), cron.SetLogger(log.New(os.Stdout, "cron: ", 0)), cron.SetLocales(cron.Locale_en, cron.Locale_fr), )
For more usage examples, including a demonstration of how cron can handle some very complex cron expressions, you can reference the unit tests or the example codes.
To use the i18n support, you must configure the locales when create a new ExpressionDescriptor
via SetLocales()
option.
exprDesc, _ := cron.NewDescriptor( cron.SetLocales(cron.Locale_en, cron.Locale_es, cron.Locale_fr), ) // or load all cron.LocaleAll exprDesc, _ := cron.NewDescriptor(cron.SetLocales(cron.LocaleAll)) desc, _ := exprDesc.ToDescription("* * * * *", cron.Locale_fr) // Toutes les minutes
By default, ExpressionDescriptor
always load the Locale_en
. If you pass an unregistered locale into ToDescription()
function, the result will be returned in English.
hcron
is the CLI tool to convert the CRON expression to human readable string.
You can pass the CRON expressions as the program argument, piped hcron
with stdin or given the path to crontab file.
You can find the pre-built binaries for Linux, MacOS, FreeBSD and Windows from the Release.
For other OS or architecture, you can build the code using Go as below:
$ go get -u -v github.com/lnquy/cron/cmd/hcron # or $ git clone https://github.com/lnquy/cron $ cd cron/cmd/hcron $ go build
$ hcron -h hcron converts the CRON expression to human readable description. Usage: hcron [flags] [cron expression] Flags: -24-hour Output description in 24 hour time format -dow-starts-at-one Is day of the week starts at 1 (Monday-Sunday: 1-7) -file string Path to crontab file -h Print help then exit -locale string Output description in which locale (default "en") -print-all Also print all the lines which is not a valid cron -v Print app version then exit -verbose Output description in verbose format Examples: $ hcron "0 15 * * 1-5" $ hcron "0 */10 9 * * 1-5 2020" $ hcron -locale fr "0 */10 9 * * 1-5 2020" $ hcron -file /var/spool/cron/crontabs/mycronfile $ another-app | hcron $ another-app | hcron --dow-starts-at-one --24-hour -locale es
This project is under the MIT License. See the LICENSE file for the full license text.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4