cron: Cron datatypes and Attoparsec parser

[ library, mit, parsing, system, text ] [ Propose Tags ] [ Report a vulnerability ]

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]

Flags

Manual Flags

NameDescriptionDefault
lib-werrorDisabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.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, 0.3.1, 0.3.2, 0.4.0, 0.4.1, 0.4.1.1, 0.4.1.2, 0.4.2, 0.5.0, 0.6.0, 0.6.1, 0.6.2, 0.7.0, 0.7.1
Change log changelog
Dependencies attoparsec (>=0.10), base (>=4.6 && <5), mtl (>=2.0.1), mtl-compat (>=0.2.1), old-locale (>=1.0), semigroups, text (>=0.11 && <2), time (>=1.4) [details]
Tested with ghc ==7.4.1, ghc ==7.6.3, ghc ==7.8.3, ghc ==7.10.1
License MIT
Copyright Copyright: (c) 2012-2014 Michael Xavier
Author Michael Xavier <michael@michaelxavier.net>
Maintainer Michael Xavier <michael@michaelxavier.net>
Revised Revision 1 made by HerbertValerioRiedel at 2016-11-22T21:44:26Z
Category Text, Parsing, System
Home page http://github.com/michaelxavier/cron
Bug tracker http://github.com/michaelxavier/cron/issues
Source repo head: git clone https://github.com/michaelxavier/cron
Uploaded by MichaelXavier at 2016-11-22T20:19:15Z
Distributions NixOS:0.7.1, Stackage:0.7.1
Reverse Dependencies 6 direct, 4 indirect [details]
Downloads 20404 total (105 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for cron-0.4.2

[back to package description]

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