Import the daemon generator as the SVN external never works.

This commit is contained in:
Tom Hughes 2008-08-07 17:46:34 +00:00
parent 6d7e69d4d3
commit 06f38caccb
5 changed files with 57 additions and 0 deletions

View file

@ -0,0 +1,11 @@
class DaemonGenerator < Rails::Generator::NamedBase
def manifest
record do |m|
m.directory "lib/daemons"
m.file "daemons", "script/daemons", :chmod => 0755
m.template "script.rb", "lib/daemons/#{file_name}.rb", :chmod => 0755
m.template "script_ctl", "lib/daemons/#{file_name}_ctl", :chmod => 0755
m.file "daemons.yml", "config/daemons.yml"
end
end
end

View file

@ -0,0 +1,2 @@
#!/usr/bin/env ruby
Dir[File.dirname(__FILE__) + "/../lib/daemons/*_ctl"].each {|f| `#{f} #{ARGV.first}`}

View file

@ -0,0 +1,5 @@
dir_mode: script
dir: ../../log
multiple: false
backtrace: true
monitor: true

19
vendor/generators/daemon/templates/script.rb vendored Executable file
View file

@ -0,0 +1,19 @@
#!/usr/bin/env ruby
#You might want to change this
ENV["RAILS_ENV"] ||= "production"
require File.dirname(__FILE__) + "/../../config/environment"
$running = true;
Signal.trap("TERM") do
$running = false
end
while($running) do
# Replace this with your code
ActiveRecord::Base.logger << "This daemon is still running at #{Time.now}.\n"
sleep 10
end

20
vendor/generators/daemon/templates/script_ctl vendored Executable file
View file

@ -0,0 +1,20 @@
#!/usr/bin/env ruby
require 'rubygems'
require "daemons"
require 'yaml'
require 'erb'
class Hash
def with_symbols!
self.keys.each{|key| self[key.to_s.to_sym] = self[key] }; self
end
end
options = YAML.load(
ERB.new(
IO.read(
File.dirname(__FILE__) + "/../../config/daemons.yml"
)).result).with_symbols!
options[:dir_mode] = options[:dir_mode].to_sym
Daemons.run File.dirname(__FILE__) + '/<%=file_name%>.rb', options