From 06f38caccbdc758c60aaed21003f8e0e52400b35 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Thu, 7 Aug 2008 17:46:34 +0000 Subject: [PATCH] Import the daemon generator as the SVN external never works. --- vendor/generators/daemon/daemon_generator.rb | 11 ++++++++++ vendor/generators/daemon/templates/daemons | 2 ++ .../generators/daemon/templates/daemons.yml | 5 +++++ vendor/generators/daemon/templates/script.rb | 19 ++++++++++++++++++ vendor/generators/daemon/templates/script_ctl | 20 +++++++++++++++++++ 5 files changed, 57 insertions(+) create mode 100644 vendor/generators/daemon/daemon_generator.rb create mode 100644 vendor/generators/daemon/templates/daemons create mode 100644 vendor/generators/daemon/templates/daemons.yml create mode 100755 vendor/generators/daemon/templates/script.rb create mode 100755 vendor/generators/daemon/templates/script_ctl diff --git a/vendor/generators/daemon/daemon_generator.rb b/vendor/generators/daemon/daemon_generator.rb new file mode 100644 index 000000000..83e3bab2c --- /dev/null +++ b/vendor/generators/daemon/daemon_generator.rb @@ -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 \ No newline at end of file diff --git a/vendor/generators/daemon/templates/daemons b/vendor/generators/daemon/templates/daemons new file mode 100644 index 000000000..feb98b645 --- /dev/null +++ b/vendor/generators/daemon/templates/daemons @@ -0,0 +1,2 @@ +#!/usr/bin/env ruby +Dir[File.dirname(__FILE__) + "/../lib/daemons/*_ctl"].each {|f| `#{f} #{ARGV.first}`} \ No newline at end of file diff --git a/vendor/generators/daemon/templates/daemons.yml b/vendor/generators/daemon/templates/daemons.yml new file mode 100644 index 000000000..c9f78f583 --- /dev/null +++ b/vendor/generators/daemon/templates/daemons.yml @@ -0,0 +1,5 @@ +dir_mode: script +dir: ../../log +multiple: false +backtrace: true +monitor: true \ No newline at end of file diff --git a/vendor/generators/daemon/templates/script.rb b/vendor/generators/daemon/templates/script.rb new file mode 100755 index 000000000..c3cd9b06b --- /dev/null +++ b/vendor/generators/daemon/templates/script.rb @@ -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 \ No newline at end of file diff --git a/vendor/generators/daemon/templates/script_ctl b/vendor/generators/daemon/templates/script_ctl new file mode 100755 index 000000000..058f61828 --- /dev/null +++ b/vendor/generators/daemon/templates/script_ctl @@ -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 \ No newline at end of file -- 2.43.2