The cron package

[Tags: library, mit]

Cron data structure and Attoparsec parser. The idea is to embed it in larger systems which want to roll their own scheduled tasks in a format that people are used to. System.Cron is where all the interesting datatypes live. You will also find scheduleMatches, which you can use to compare a time against a CronSchedule to see if an action needs to be performed. System.Cron.Parser is where you will find the parsers cronSchedule, crontabEntry and cronTab. To parse individual schedules up to full crontab files.


[Skip to ReadMe]

Properties

Versions0.1.0, 0.1.1, 0.1.2, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.2.6, 0.3.0
Change logchangelog
Dependenciesattoparsec (>=0.10), base (==4.*), mtl (>=2.0.1), mtl-compat (>=0.2.1), old-locale (>=1.0), text (>=0.11 && <2), time (>=1.4) [details]
LicenseMIT
CopyrightCopyright: (c) 2012-2014 Michael Xavier
AuthorMichael Xavier <michael@michaelxavier.net>
MaintainerMichael Xavier <michael@michaelxavier.net>
Stabilityexperimental
CategoryText, Parsing, System
Home pagehttp://github.com/michaelxavier/cron
Bug trackerhttp://github.com/michaelxavier/cron/issues
Source repositoryhead: git clone https://github.com/michaelxavier/cron
UploadedFri Jun 12 03:15:30 UTC 2015 by MichaelXavier
DistributionsLTSHaskell:0.3.0, NixOS:0.3.0, Stackage:0.3.0
Downloads1911 total (102 in last 30 days)
Votes
0 []
StatusDocs available [build log]
Last success reported on 2015-06-12 [all 1 reports]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for cron-0.3.0

cron

Build Status

Cron data structure and Attoparsec parser for Haskell. The idea is to embed it in larger systems which want to roll their own scheduled tasks in a format that people are used to.

System.Cron is where all the interesting datatypes live. You will also find scheduleMatches, which you can use to compare a time against a CronSchedule to see if an action needs to be performed. System.Cron.Parser is where you will find the parsers cronSchedule, crontabEntry and cronTab. To parse individual schedules up to full crontab files.

To do anything, you'll need to install cabal-dev with cabal.

To build, run:

make

To run tests, run:

make test

If you have inotify-tools, run this to run tests continuously.

make autotest

To generate docs:

make docs

Scheduler

Cron offers a scheduling monad which can be found in System.Cron.Schedule. This monad transform allows you to declare a set of jobs (of the type IO ()) that will be executed at intervals defined by cron strings.

main :: IO ()
main = do
    ...
    tids <- execSchedule $ do
        addJob job1 "* * * * *"
        addJob job2 "0 * * * *"
    print tids
    ...

job1 :: IO ()
job1 = putStrLn "Job 1"

job2 :: IO ()
job2 = putStrLn "Job 2"

Contributors