Import the daemon generator as the SVN external never works.
This commit is contained in:
parent
6d7e69d4d3
commit
06f38caccb
5 changed files with 57 additions and 0 deletions
11
vendor/generators/daemon/daemon_generator.rb
vendored
Normal file
11
vendor/generators/daemon/daemon_generator.rb
vendored
Normal 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
|
2
vendor/generators/daemon/templates/daemons
vendored
Normal file
2
vendor/generators/daemon/templates/daemons
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
#!/usr/bin/env ruby
|
||||
Dir[File.dirname(__FILE__) + "/../lib/daemons/*_ctl"].each {|f| `#{f} #{ARGV.first}`}
|
5
vendor/generators/daemon/templates/daemons.yml
vendored
Normal file
5
vendor/generators/daemon/templates/daemons.yml
vendored
Normal 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
19
vendor/generators/daemon/templates/script.rb
vendored
Executable 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
20
vendor/generators/daemon/templates/script_ctl
vendored
Executable 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
|
Loading…
Add table
Add a link
Reference in a new issue