mojombo-god 0.7.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. data/History.txt +255 -0
  2. data/Manifest.txt +107 -0
  3. data/README.txt +59 -0
  4. data/Rakefile +35 -0
  5. data/bin/god +127 -0
  6. data/examples/events.god +84 -0
  7. data/examples/gravatar.god +54 -0
  8. data/examples/single.god +66 -0
  9. data/ext/god/extconf.rb +55 -0
  10. data/ext/god/kqueue_handler.c +123 -0
  11. data/ext/god/netlink_handler.c +167 -0
  12. data/init/god +42 -0
  13. data/lib/god.rb +644 -0
  14. data/lib/god/behavior.rb +52 -0
  15. data/lib/god/behaviors/clean_pid_file.rb +21 -0
  16. data/lib/god/behaviors/clean_unix_socket.rb +21 -0
  17. data/lib/god/behaviors/notify_when_flapping.rb +51 -0
  18. data/lib/god/cli/command.rb +206 -0
  19. data/lib/god/cli/run.rb +177 -0
  20. data/lib/god/cli/version.rb +23 -0
  21. data/lib/god/condition.rb +96 -0
  22. data/lib/god/conditions/always.rb +23 -0
  23. data/lib/god/conditions/complex.rb +86 -0
  24. data/lib/god/conditions/cpu_usage.rb +80 -0
  25. data/lib/god/conditions/degrading_lambda.rb +52 -0
  26. data/lib/god/conditions/disk_usage.rb +27 -0
  27. data/lib/god/conditions/flapping.rb +128 -0
  28. data/lib/god/conditions/http_response_code.rb +168 -0
  29. data/lib/god/conditions/lambda.rb +25 -0
  30. data/lib/god/conditions/memory_usage.rb +82 -0
  31. data/lib/god/conditions/process_exits.rb +72 -0
  32. data/lib/god/conditions/process_running.rb +74 -0
  33. data/lib/god/conditions/tries.rb +44 -0
  34. data/lib/god/configurable.rb +57 -0
  35. data/lib/god/contact.rb +106 -0
  36. data/lib/god/contacts/email.rb +95 -0
  37. data/lib/god/dependency_graph.rb +41 -0
  38. data/lib/god/diagnostics.rb +37 -0
  39. data/lib/god/driver.rb +108 -0
  40. data/lib/god/errors.rb +24 -0
  41. data/lib/god/event_handler.rb +111 -0
  42. data/lib/god/event_handlers/dummy_handler.rb +13 -0
  43. data/lib/god/event_handlers/kqueue_handler.rb +17 -0
  44. data/lib/god/event_handlers/netlink_handler.rb +13 -0
  45. data/lib/god/logger.rb +120 -0
  46. data/lib/god/metric.rb +59 -0
  47. data/lib/god/process.rb +325 -0
  48. data/lib/god/registry.rb +32 -0
  49. data/lib/god/simple_logger.rb +53 -0
  50. data/lib/god/socket.rb +96 -0
  51. data/lib/god/sugar.rb +47 -0
  52. data/lib/god/system/portable_poller.rb +42 -0
  53. data/lib/god/system/process.rb +42 -0
  54. data/lib/god/system/slash_proc_poller.rb +82 -0
  55. data/lib/god/task.rb +487 -0
  56. data/lib/god/timeline.rb +25 -0
  57. data/lib/god/trigger.rb +43 -0
  58. data/lib/god/watch.rb +183 -0
  59. data/test/configs/child_events/child_events.god +44 -0
  60. data/test/configs/child_events/simple_server.rb +3 -0
  61. data/test/configs/child_polls/child_polls.god +37 -0
  62. data/test/configs/child_polls/simple_server.rb +12 -0
  63. data/test/configs/complex/complex.god +59 -0
  64. data/test/configs/complex/simple_server.rb +3 -0
  65. data/test/configs/contact/contact.god +74 -0
  66. data/test/configs/contact/simple_server.rb +3 -0
  67. data/test/configs/daemon_events/daemon_events.god +37 -0
  68. data/test/configs/daemon_events/simple_server.rb +8 -0
  69. data/test/configs/daemon_events/simple_server_stop.rb +11 -0
  70. data/test/configs/daemon_polls/daemon_polls.god +17 -0
  71. data/test/configs/daemon_polls/simple_server.rb +6 -0
  72. data/test/configs/degrading_lambda/degrading_lambda.god +31 -0
  73. data/test/configs/degrading_lambda/tcp_server.rb +15 -0
  74. data/test/configs/matias/matias.god +50 -0
  75. data/test/configs/real.rb +59 -0
  76. data/test/configs/running_load/running_load.god +16 -0
  77. data/test/configs/stress/simple_server.rb +3 -0
  78. data/test/configs/stress/stress.god +15 -0
  79. data/test/configs/task/logs/.placeholder +0 -0
  80. data/test/configs/task/task.god +26 -0
  81. data/test/configs/test.rb +61 -0
  82. data/test/helper.rb +151 -0
  83. data/test/suite.rb +6 -0
  84. data/test/test_behavior.rb +21 -0
  85. data/test/test_condition.rb +50 -0
  86. data/test/test_conditions_disk_usage.rb +56 -0
  87. data/test/test_conditions_http_response_code.rb +109 -0
  88. data/test/test_conditions_process_running.rb +44 -0
  89. data/test/test_conditions_tries.rb +67 -0
  90. data/test/test_contact.rb +109 -0
  91. data/test/test_dependency_graph.rb +62 -0
  92. data/test/test_driver.rb +11 -0
  93. data/test/test_event_handler.rb +80 -0
  94. data/test/test_god.rb +598 -0
  95. data/test/test_handlers_kqueue_handler.rb +16 -0
  96. data/test/test_logger.rb +63 -0
  97. data/test/test_metric.rb +72 -0
  98. data/test/test_process.rb +246 -0
  99. data/test/test_registry.rb +15 -0
  100. data/test/test_socket.rb +42 -0
  101. data/test/test_sugar.rb +42 -0
  102. data/test/test_system_portable_poller.rb +17 -0
  103. data/test/test_system_process.rb +30 -0
  104. data/test/test_task.rb +262 -0
  105. data/test/test_timeline.rb +37 -0
  106. data/test/test_trigger.rb +59 -0
  107. data/test/test_watch.rb +279 -0
  108. metadata +186 -0
data/History.txt ADDED
@@ -0,0 +1,255 @@
1
+ == _._._ / TBD
2
+ * Bug Fixes
3
+ * Catch all Exceptions from HttpResponseCode condition [github.com/rliebling]
4
+ * Don't error out if the process went away in SlashProcPoller [Kevin Clark]
5
+ * Correction of Task#handle_poll to prevent crash under event registration failure conditions. [github.com/raggi]
6
+ * Cleaned up logging of failed e-mail sends. [github.com/raggi]
7
+ * Listen on 127.0.0.1 when using God as a client. [github.com/halorgium]
8
+ * New Behaviors
9
+ * clean_unix_socket [github.com/gma]
10
+ * New Contacts
11
+ * jabber [github.com/jwulff]
12
+ * email via sendmail [github.com/monde]
13
+ * Minor Enhancements
14
+ * chroot support [github.com/eric]
15
+ * Added God.log_file for the main god log, overridden by command line option. [github.com/raggi]
16
+ * Print groups from `god status` command if present [github.com/pdlug]
17
+ * Allow headers to be specified for http_response_code condition [github.com/pdlug]
18
+
19
+ == 0.7.7 / 2008-06-17
20
+ * Bug Fixes
21
+ * Fix detection of proc file system [raggi]
22
+
23
+ == 0.7.6 / 2008-05-13
24
+ * Major Enhancements
25
+ * Implement System::Process methods for Linux based on /proc [Kevin Clark]
26
+ * Minor Enhancements
27
+ * Allowing directories to be loaded at start [Bert Goethals]
28
+ * Bug Fixes
29
+ * Don't leak events on error in the kqueue handler [Kevin Clark]
30
+
31
+ == 0.7.5 / 2008-02-21
32
+ * Bug Fixes
33
+ * Remove Ruby's Logger and replace with custom SimpleLogger to stop threaded leak
34
+
35
+ == 0.7.4 / 2008-02-18
36
+ * Bug Fixes
37
+ * Introduce local scope to prevent faulty optimization that causes memory to leak
38
+
39
+ == 0.7.3 / 2008-02-14
40
+ * Minor Enhancements
41
+ * Add --bleakhouse to make running diagnostics easier
42
+ * Bug Fixes
43
+ * Use ::Process.kill(0, ...) instead of `kill -0` [queso]
44
+ * Fix pid_file behavior in process-centric conditions so they work with tasks [matias]
45
+ * Redirect output of daemonized god to log file or /dev/null earlier [_eric]
46
+
47
+ == 0.7.2 / 2008-02-04
48
+ * Bug Fixes
49
+ * Start event system for CLI commands
50
+ * Up internal history to 100 lines per watch
51
+
52
+ == 0.7.1 / 2008-02-04
53
+ * Minor Enhancements
54
+ * Add --no-events option to completely disable events system
55
+
56
+ == 0.7.0 / 2008-02-01
57
+ * Minor Enhancements
58
+ * Better default pid_file_directory behavior
59
+ * Add --attach <pid> to specify that god should quit if <pid> exits
60
+ * Bug Fixes
61
+ * Handle ECONNRESET in HttpResponseCode
62
+
63
+ == 0.6.12 / 2008-01-31
64
+ * Minor Enhancements
65
+ * Allow log file output for non-daemonized god
66
+ * Switch to SIGTERM from SIGHUP for default lambda killer
67
+
68
+ == 0.6.11 / 2008-01-31
69
+ * Major Enhancements
70
+ * HUGE refactor of timer system to simplify scheduling
71
+ * Minor Enhancements
72
+ * Check for a truly working event system and disallow event conditions if none is present
73
+
74
+ == 0.6.10 / 2008-01-24
75
+ * Bug Fixes
76
+ * Fix ensure_stop nil pid no local variable bug
77
+
78
+ == 0.6.9 / 2008-01-23
79
+ * Bug Fixes
80
+ * Fix Timer condition dedup behavior
81
+
82
+ == 0.6.8 / 2008-01-23
83
+ * Minor Enhancements
84
+ * Warn if a command returns a non-zero exit code
85
+ * Ensure that stop command actually stops process
86
+
87
+ == 0.6.7 / 2008-01-22
88
+ * Minor Enhancements
89
+ * Add --no-syslog option to disable Syslog
90
+ * Allow contact redeclaration (dups are ignored)
91
+
92
+ == 0.6.6 / 2008-01-07
93
+ * Bug Fixes
94
+ * Redo Timer mutexing to reduce synchronization needs
95
+
96
+ == 0.6.5 / 2008-01-04
97
+ * Bug Fixes
98
+ * Fix Timer descheduling deadlock issue
99
+ * Change HttpResponseCode to use GET instead of HEAD
100
+
101
+ == 0.6.4 / 2008-12-31
102
+ * Bug Fixes
103
+ * Refactor Hub to clarify mutexing
104
+ * Eliminate potential iteration problem in Timer
105
+ * Add caching PID accessor to process to solve event deregistration failure
106
+
107
+ == 0.6.3 / 2007-12-18
108
+ * Minor Enhancements
109
+ * Output ProcessExits registration/deregistration info
110
+
111
+ == 0.6.2 / 2007-12-17
112
+ * Minor Enhancements
113
+ * Output registered PID for ProcessExits
114
+ * Bug Fixes
115
+ * Fix `god remove <group>` not working for unmonitored watches
116
+
117
+ == 0.6.1 / 2007-12-14
118
+
119
+ * Minor Enhancement
120
+ * Log when state change is complete
121
+
122
+ == 0.6.0 / 2007-12-4
123
+
124
+ * Minor Enhancement
125
+ * Move Syslog calls into God::Logger and clean up all calling code
126
+ * Remove god's pid file on user requested termination
127
+ * Better handling and cleanup of DRb server's unix domain socket
128
+ * Allow shorthand for requesting a god log
129
+ * Add `god check` to make it easier to diagnose event problems
130
+ * Refactor god binary into class/method structure
131
+ * Implement `god remove` to remove a Task altogether
132
+ * New Conditions
133
+ * DiskUsage < PollCondition - trigger if disk usage is above limit on mount [Rudy Desjardins]
134
+
135
+ == 0.5.2 / 2007-10-10
136
+
137
+ * Minor Enhancement
138
+ * Allow extra args to pass through to config file
139
+
140
+ == 0.5.1 / 2007-10-08
141
+
142
+ * Bug Fixes
143
+ * Rescue connection refused in http response code condition
144
+
145
+ == 0.5.0 / 2007-10-05
146
+
147
+ * Major Enhancements
148
+ * Implement lifecycle scoped metric to allow for cross-state conditions
149
+ * Add TriggerCondition for conditions that need info about state changes
150
+ * Implement notification system
151
+ * Add Tasks (a generalization of Watches) to do non-process related tasks
152
+ * Add example init.d file in GOD_INSTALL_DIR/init/god [scott becker]
153
+ * Add human readable info to conditions (and make low level log lines debug)
154
+ * Switch DRb to use a unix domain socket for security reasons
155
+ * Minor Enchancements
156
+ * Allow EventConditions to do transition overloading
157
+ * Report errors during god startup instead of failing silently
158
+ * Make transition block optional (default to Always condition returning true)
159
+ * Better usage info for `god --help`
160
+ * Explain what's going on when attempting to rebind to an in-use port
161
+ * Add -b option to god binary to auto-bind to an unused port
162
+ * Add `god quit` to stop god without stopping any tasks
163
+ * Make self-daemonized Watch commands synchronous (as they should be)
164
+ * Allow self-daemonized Watches to specify a log (could be useful)
165
+ * Check for existence of config file if specified
166
+ * Robustify `god load` and report errors back to the command issuer
167
+ * Warn when `god load` tries to set global options
168
+ * Add Configurable.clear method and make built-in conditions clear on entry
169
+ * New Conditions
170
+ * Flapping < TriggerCondition - trigger on state change
171
+ * HttpResponseCode < PollCondition - trigger on http response code or timeout (thx scott becker)
172
+ * New Contacts
173
+ * Email < Contact - notify via email (smtp)
174
+ * Bug Fixes
175
+ * Fix abort not aborting problem
176
+ * Fix -p option not working for god binary
177
+ * Fix God.init not accepting block (thx _eric)
178
+ * Fix SIGHUP ignore (thx _eric)
179
+ * Fix error reporting on `god --help` (don't error report a normal SystemExit)
180
+
181
+ == 0.4.3 / 2007-09-10
182
+ * Bug Fixes
183
+ * fix Process#alive? to not raise on no such file (affects `god terminate`)
184
+
185
+ == 0.4.2 / 2007-09-10
186
+ * Bug Fixes
187
+ * fix netlink buffer issue that prevented events on Linux from working consistently [dkresge]
188
+
189
+ == 0.4.1 / 2007-09-10
190
+ * Bug Fixes
191
+ * require 'stringio' for ruby 1.8.5
192
+
193
+ == 0.4.0 / 2007-09-10
194
+
195
+ * Major Enhancements
196
+ * Add the ability for conditions to override transition state (for exceptional cases)
197
+ * Implement dynamic load of config files while god is running (god load <filename>)
198
+ * Add ability to save auto-daemonized process output to a log file
199
+ * Add robust default stop lambda command for auto-daemonized processes (inspired by _eric)
200
+ * Add status command for god binary (shows status of each watch)
201
+ * Create proper logger with timestamps
202
+ * Add log command to god binary to get real time logs for a specific watch from a running god instance
203
+ * Add terminate command for god binary (stop god and all watches)
204
+ * Minor Enhancements
205
+ * Enforce validity of Watches
206
+ * Enforce that God.init is not called after a Watch
207
+ * Move pid_file_directory creation and validation to God.start
208
+ * Remove check for at least one Watch during startup (now that dynamic loading exists)
209
+ * New Conditions
210
+ * Tries < PollCondition - triggers after the specified number of tries
211
+ * Add :notify_when_flapping behavior to check for oscillation [kevinclark]
212
+ * Add :degrading_lambda condition. [kevinclark]
213
+ It uses a decaying interval (1/2 rate) for 3 cycles before failing.
214
+ * Bug Fixes
215
+ * Use exit!(0) instead of exit! in god binary to exit with code 0 (instead of default -1)
216
+ * Command line group control fixed
217
+ * Fix cross-thread return problem
218
+
219
+ == 0.3.0 / 2007-08-17
220
+
221
+ * Fix netlink header problem on Ubuntu Edgy [Dan Sully]
222
+ * Add uid/gid setting for processes [kevinclark]
223
+ * Add autostart flag for watches so they don't necessarily startup with god [kevinclark]
224
+ * Change command line call options for god binary to accommodate watch start/stop functionality
225
+ * Add individual start/stop/restart grace periods for finer grained control
226
+ * Change default DRb port to 17165 ('god'.to_i(32))
227
+ * Implement command line control to start/restart/stop/monitor/unmonitor watches/groups by name
228
+ * Watches can now belong to a group that can be controlled as a whole
229
+ * Allow god to be installed (sans events) on systems that don't support events
230
+ * Daemonize and handle PID files for non-daemonizing scripts [kevinclark]
231
+ * Fix simple mode lifecycle gap
232
+ * Remove necessity to specify pid_file for conditions
233
+ * Change config file to use God.init and God.watch directly instead of God.meddle block
234
+ * Move god binary command logic to main library
235
+ * Enhance god binary with better reporting
236
+ * Fix synchronization bug in Timer (reported by Srini Panguluri)
237
+ * Add Lambda condition for easy custom conditions [Mike Mintz]
238
+ * Add sugar for numerics (seconds, minutes, kilobytes, megabytes, percent, etc)
239
+ * Add optional PID and log file generation to god binary for daemon mode
240
+ * Add God.load to do glob enabled loading
241
+ * Add -V option to god binary for detailed version/build info
242
+
243
+ == 0.2.0 / 2007-07-18
244
+
245
+ * Rewrote innards to use a state and event based lifecycle
246
+ * Basic support for events via kqueue (bsd/darwin) and netlink/pec (linux) [kevinclark]
247
+ * Added advanced syntax (simple syntax calls advanced api underneath)
248
+ * Condition returns have changed meaning. With simple syntax, a true return activates block
249
+ * Updated http://god.rubyforge.org with updated simple config and new advanced config
250
+
251
+ == 0.1.0 / 2007-07-07
252
+
253
+ * 1 major enhancement
254
+ * Birthday!
255
+
data/Manifest.txt ADDED
@@ -0,0 +1,107 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ bin/god
6
+ examples/events.god
7
+ examples/gravatar.god
8
+ examples/single.god
9
+ ext/god/extconf.rb
10
+ ext/god/kqueue_handler.c
11
+ ext/god/netlink_handler.c
12
+ init/god
13
+ lib/god.rb
14
+ lib/god/behavior.rb
15
+ lib/god/behaviors/clean_pid_file.rb
16
+ lib/god/behaviors/clean_unix_socket.rb
17
+ lib/god/behaviors/notify_when_flapping.rb
18
+ lib/god/cli/command.rb
19
+ lib/god/cli/run.rb
20
+ lib/god/cli/version.rb
21
+ lib/god/condition.rb
22
+ lib/god/conditions/always.rb
23
+ lib/god/conditions/complex.rb
24
+ lib/god/conditions/cpu_usage.rb
25
+ lib/god/conditions/degrading_lambda.rb
26
+ lib/god/conditions/disk_usage.rb
27
+ lib/god/conditions/flapping.rb
28
+ lib/god/conditions/http_response_code.rb
29
+ lib/god/conditions/lambda.rb
30
+ lib/god/conditions/memory_usage.rb
31
+ lib/god/conditions/process_exits.rb
32
+ lib/god/conditions/process_running.rb
33
+ lib/god/conditions/tries.rb
34
+ lib/god/configurable.rb
35
+ lib/god/contact.rb
36
+ lib/god/contacts/email.rb
37
+ lib/god/dependency_graph.rb
38
+ lib/god/diagnostics.rb
39
+ lib/god/driver.rb
40
+ lib/god/errors.rb
41
+ lib/god/event_handler.rb
42
+ lib/god/event_handlers/dummy_handler.rb
43
+ lib/god/event_handlers/kqueue_handler.rb
44
+ lib/god/event_handlers/netlink_handler.rb
45
+ lib/god/logger.rb
46
+ lib/god/metric.rb
47
+ lib/god/process.rb
48
+ lib/god/registry.rb
49
+ lib/god/simple_logger.rb
50
+ lib/god/socket.rb
51
+ lib/god/sugar.rb
52
+ lib/god/system/portable_poller.rb
53
+ lib/god/system/process.rb
54
+ lib/god/system/slash_proc_poller.rb
55
+ lib/god/task.rb
56
+ lib/god/timeline.rb
57
+ lib/god/trigger.rb
58
+ lib/god/watch.rb
59
+ test/configs/child_events/child_events.god
60
+ test/configs/child_events/simple_server.rb
61
+ test/configs/child_polls/child_polls.god
62
+ test/configs/child_polls/simple_server.rb
63
+ test/configs/complex/complex.god
64
+ test/configs/complex/simple_server.rb
65
+ test/configs/contact/contact.god
66
+ test/configs/contact/simple_server.rb
67
+ test/configs/daemon_events/daemon_events.god
68
+ test/configs/daemon_events/simple_server.rb
69
+ test/configs/daemon_events/simple_server_stop.rb
70
+ test/configs/daemon_polls/daemon_polls.god
71
+ test/configs/daemon_polls/simple_server.rb
72
+ test/configs/degrading_lambda/degrading_lambda.god
73
+ test/configs/degrading_lambda/tcp_server.rb
74
+ test/configs/matias/matias.god
75
+ test/configs/real.rb
76
+ test/configs/running_load/running_load.god
77
+ test/configs/stress/simple_server.rb
78
+ test/configs/stress/stress.god
79
+ test/configs/task/logs/.placeholder
80
+ test/configs/task/task.god
81
+ test/configs/test.rb
82
+ test/helper.rb
83
+ test/suite.rb
84
+ test/test_behavior.rb
85
+ test/test_condition.rb
86
+ test/test_conditions_disk_usage.rb
87
+ test/test_conditions_http_response_code.rb
88
+ test/test_conditions_process_running.rb
89
+ test/test_conditions_tries.rb
90
+ test/test_contact.rb
91
+ test/test_dependency_graph.rb
92
+ test/test_driver.rb
93
+ test/test_event_handler.rb
94
+ test/test_god.rb
95
+ test/test_handlers_kqueue_handler.rb
96
+ test/test_logger.rb
97
+ test/test_metric.rb
98
+ test/test_process.rb
99
+ test/test_registry.rb
100
+ test/test_socket.rb
101
+ test/test_sugar.rb
102
+ test/test_system_portable_poller.rb
103
+ test/test_system_process.rb
104
+ test/test_task.rb
105
+ test/test_timeline.rb
106
+ test/test_trigger.rb
107
+ test/test_watch.rb
data/README.txt ADDED
@@ -0,0 +1,59 @@
1
+ god
2
+ by Tom Preston-Werner
3
+ Kevin Clark (kqueue/netlink support)
4
+
5
+ http://god.rubyforge.org
6
+
7
+ == DESCRIPTION:
8
+
9
+ God is an easy to configure, easy to extend monitoring framework written
10
+ in Ruby.
11
+
12
+ Keeping your server processes and tasks running should be a simple part of
13
+ your deployment process. God aims to be the simplest, most powerful
14
+ monitoring application available.
15
+
16
+ == DOCUMENTATION:
17
+
18
+ See online documentation at http://god.rubyforge.org
19
+
20
+ == COMMUNITY:
21
+
22
+ Sign up for the god mailing list at http://groups.google.com/group/god-rb
23
+
24
+ == INSTALL:
25
+
26
+ $ sudo gem install god
27
+
28
+ == CONTRIBUTE:
29
+
30
+ Latest code is available at http://github.com/mojombo/god
31
+
32
+ The 'master' branch can be cloned with:
33
+
34
+ $ git clone git://github.com/mojombo/god.git
35
+
36
+ == LICENSE:
37
+
38
+ (The MIT License)
39
+
40
+ Copyright (c) 2007 Tom Preston-Werner
41
+
42
+ Permission is hereby granted, free of charge, to any person obtaining
43
+ a copy of this software and associated documentation files (the
44
+ 'Software'), to deal in the Software without restriction, including
45
+ without limitation the rights to use, copy, modify, merge, publish,
46
+ distribute, sublicense, and/or sell copies of the Software, and to
47
+ permit persons to whom the Software is furnished to do so, subject to
48
+ the following conditions:
49
+
50
+ The above copyright notice and this permission notice shall be
51
+ included in all copies or substantial portions of the Software.
52
+
53
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
54
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
55
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
56
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
57
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
58
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
59
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,35 @@
1
+ require 'rubygems'
2
+ require 'hoe'
3
+
4
+ Hoe.new('god', '0.7.7') do |p|
5
+ p.rubyforge_name = 'god'
6
+ p.author = 'Tom Preston-Werner'
7
+ p.email = 'tom@rubyisawesome.com'
8
+ p.url = 'http://god.rubyforge.org/'
9
+ p.summary = 'Like monit, only awesome'
10
+ p.description = "God is an easy to configure, easy to extend monitoring framework written in Ruby."
11
+ p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
12
+ p.spec_extras = {:extensions => ['ext/god/extconf.rb']}
13
+ end
14
+
15
+ desc "Open an irb session preloaded with this library"
16
+ task :console do
17
+ sh "irb -rubygems -r ./lib/god.rb"
18
+ end
19
+
20
+ desc "Upload site to Rubyforge"
21
+ task :site do
22
+ sh "scp -r site/* mojombo@god.rubyforge.org:/var/www/gforge-projects/god"
23
+ end
24
+
25
+ desc "Upload site to Rubyforge"
26
+ task :site_edge do
27
+ sh "scp -r site/* mojombo@god.rubyforge.org:/var/www/gforge-projects/god/edge"
28
+ end
29
+
30
+ desc "Run rcov"
31
+ task :coverage do
32
+ `rm -fr coverage`
33
+ `rcov test/test_*.rb`
34
+ `open coverage/index.html`
35
+ end