Register the watch's process at the end of meddle.
[god.git] / lib / god.rb
blob6a7ffc9121b7870afdcad3b2e224e1956d680c70
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'
33 require 'god/registry'
34 require 'god/process'
36 $:.unshift File.join(File.dirname(__FILE__), *%w[.. ext god])
38 begin
39   Syslog.open('god')
40 rescue RuntimeError
41   Syslog.reopen('god')
42 end
44 God::EventHandler.load
46 module God
47   VERSION = '0.3.0'
48     
49   def self.meddle(options = {})  
50     m = Meddle.new(options)
51     
52     # yeild to the config file
53     yield m
54     
55     # start event handler system
56     EventHandler.start if EventHandler.loaded?
57     
58     # start the timer system
59     Timer.get
61     # start monitoring
62     m.monitor
63     
64     # join the timer thread so we don't exit
65     Timer.get.join
66   end  
67 end