saimonmoore-god 0.7.9

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