public
Description: A dsl for cron
Homepage:
Clone URL: git://github.com/scrooloose/crondle.git
crondle / README
100644 62 lines (42 sloc) 1.747 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
This is a dsl for making crontab code that ive been hacking for fun. Ill probably
make it into a gem at some stage.
 
Below is an example ruby file that uses crondle.
 
    require 'lib/crondle'
 
    Crondle.define_jobs do |builder|
 
      builder.desc "Restart god every midnight"
      builder.job "/home/admin/bin/god-restart", :minute => 0,
                                                 :hour => 0
 
      builder.desc "Do an ls at 00:30 on the 5th day of every month"
      builder.job "ls", :minute => 30,
                        :hour => 0,
                        :day_of_month => 5
 
      builder.desc "Do a foobar every tuesday at midnight"
      builder.job "foobar", :day_of_week => :tuesday,
                        :hour => 0,
                        :minute => 0
 
      builder.with_options :minute => 30, :hour => 3, :day_of_week => :sunday do
        builder.desc "Run argle at 0330 on sundays"
        builder.job("argle")
 
        builder.desc "Run glarg at 0330 on sundays in july"
        builder.job("glarg", :month => 7)
      end
 
      builder.desc "Run rodney at midnight nightly"
      builder.daily_job "rodney"
 
      builder.desc "Run boner at 3am nightly"
      builder.daily_job "boner", 3
    end
 
 
Running ruby on this file would produce the following crontab code
 
    # Restart god every midnight
    0 0 * * * /home/admin/bin/god-restart
 
    # Do an ls at 00:30 on the 5th day of every month
    30 0 5 * * ls
 
    # Do a foobar every tuesday at midnight
    0 0 * * 2 foobar
 
    # Run argle at 0330 on sundays
    30 3 * * 0 argle
 
    # Run glarg at 0330 on sundays in july
    30 3 * 7 0 glarg
 
    # Run rodney at midnight nightly
    0 0 * * * rodney
 
    # Run boner at 3am nightly
    0 3 * * * boner