implemented cli control
[god.git] / lib / god.rb
blob7716ec9dfbc854a5db55a2ddf3d9621a21de4ab7
1 $:.unshift File.dirname(__FILE__)     # For use/testing when no gem is installed
3 require 'syslog'
5 # internal requires
6 require 'god/base'
7 require 'god/errors'
9 require 'god/system/process'
11 require 'god/behavior'
12 require 'god/behaviors/clean_pid_file'
14 require 'god/condition'
15 require 'god/conditions/timeline'
16 require 'god/conditions/process_running'
17 require 'god/conditions/process_exits'
18 require 'god/conditions/memory_usage'
19 require 'god/conditions/cpu_usage'
20 require 'god/conditions/always'
22 require 'god/reporter'
23 require 'god/server'
24 require 'god/timer'
25 require 'god/hub'
27 require 'god/metric'
29 require 'god/watch'
30 require 'god/meddle'
32 require 'god/event_handler'
34 Thread.abort_on_exception = true
36 $:.unshift File.join(File.dirname(__FILE__), *%w[.. ext god])
38 Syslog.open('god')
40 God::EventHandler.load
42 module God
43   VERSION = '0.3.0'
44     
45   def self.meddle(options = {})  
46     m = Meddle.new(options)
47     
48     # yeild to the config file
49     yield m
50     
51     # start event handler system
52     EventHandler.start if EventHandler.loaded?
53     
54     # start the timer system
55     Timer.get
57     # start monitoring
58     m.monitor
59     
60     # join the timer thread so we don't exit
61     Timer.get.join
62   end  
63 end