| 1 | | # desc "Explaining what the task does" |
|---|
| 2 | | # task :backgroundrb do |
|---|
| 3 | | # # Task goes here |
|---|
| 4 | | # end |
|---|
| | 1 | namespace :backgroundrb do |
|---|
| | 2 | require 'yaml' |
|---|
| | 3 | desc 'Setup backgroundrb in your rails application' |
|---|
| | 4 | task :setup do |
|---|
| | 5 | script_dest = "#{RAILS_ROOT}/script/backgroundrb" |
|---|
| | 6 | script_src = File.dirname(__FILE__) + "/../script/backgroundrb" |
|---|
| | 7 | |
|---|
| | 8 | FileUtils.chmod 0774, script_src |
|---|
| | 9 | |
|---|
| | 10 | defaults = {:host => 'localhost', |
|---|
| | 11 | :port => 2000, |
|---|
| | 12 | :rails_env => 'development' |
|---|
| | 13 | } |
|---|
| | 14 | |
|---|
| | 15 | config_dest = "#{RAILS_ROOT}/config/backgroundrb.yml" |
|---|
| | 16 | |
|---|
| | 17 | unless File.exists?(config_dest) |
|---|
| | 18 | puts "Copying backgroundrb.yml config file to #{config_dest}" |
|---|
| | 19 | File.open(config_dest, 'w') { |f| f.write(YAML.dump(defaults)) } |
|---|
| | 20 | end |
|---|
| | 21 | |
|---|
| | 22 | unless File.exists?(script_dest) |
|---|
| | 23 | puts "Copying backgroundrb script to #{script_dest}" |
|---|
| | 24 | FileUtils.cp_r(script_src, script_dest) |
|---|
| | 25 | end |
|---|
| | 26 | |
|---|
| | 27 | workers_dest = "#{RAILS_ROOT}/lib/workers" |
|---|
| | 28 | unless File.exists?(workers_dest) |
|---|
| | 29 | puts "Creating #{workers_dest}" |
|---|
| | 30 | FileUtils.mkdir(workers_dest) |
|---|
| | 31 | end |
|---|
| | 32 | end |
|---|
| | 33 | |
|---|
| | 34 | desc 'Remove backgroundrb from your rails application' |
|---|
| | 35 | task :remove do |
|---|
| | 36 | script_src = "#{RAILS_ROOT}/script/backgroundrb" |
|---|
| | 37 | |
|---|
| | 38 | if File.exists?(script_src) |
|---|
| | 39 | puts "Removing #{script_src} ..." |
|---|
| | 40 | FileUtils.rm(script_src, :force => true) |
|---|
| | 41 | end |
|---|
| | 42 | |
|---|
| | 43 | workers_dest = "#{RAILS_ROOT}/lib/workers" |
|---|
| | 44 | if File.exists?(workers_dest) && Dir.entries("#{workers_dest}").size == 2 |
|---|
| | 45 | puts "#{workers_dest} is empty...deleting!" |
|---|
| | 46 | FileUtils.rmdir(workers_dest) |
|---|
| | 47 | end |
|---|
| | 48 | end |
|---|
| | 49 | |
|---|
| | 50 | |
|---|
| | 51 | desc 'Start backgroundrb server (default values)' |
|---|
| | 52 | task :start do |
|---|
| | 53 | def disabled_warning |
|---|
| | 54 | puts "WARNING: the rake tasks for start/stop/restart of BackgrounDRb is currently broken" |
|---|
| | 55 | puts "WARNING: use ./script/backgroundrb start/stop instead" |
|---|
| | 56 | puts "WARNING: http://backgroundrb.devjavu.com/projects/backgroundrb/ticket/27" |
|---|
| | 57 | end |
|---|
| | 58 | script = "#{RAILS_ROOT}/script/backgroundrb" |
|---|
| | 59 | |
|---|
| | 60 | if File.exists?(script) |
|---|
| | 61 | disabled_warning |
|---|
| | 62 | #`#{script} start` |
|---|
| | 63 | else |
|---|
| | 64 | puts "Backgroundrb is not installed. Run 'rake backgroundrb:setup' first!" |
|---|
| | 65 | end |
|---|
| | 66 | end |
|---|
| | 67 | |
|---|
| | 68 | desc 'Stop backgroundrb server (default values)' |
|---|
| | 69 | task :stop do |
|---|
| | 70 | script = "#{RAILS_ROOT}/script/backgroundrb" |
|---|
| | 71 | |
|---|
| | 72 | if File.exists?(script) |
|---|
| | 73 | disabled_warning |
|---|
| | 74 | #`#{script} stop` |
|---|
| | 75 | else |
|---|
| | 76 | puts "Backgroundrb is not installed. Run 'rake backgroundrb:setup' first!" |
|---|
| | 77 | end |
|---|
| | 78 | end |
|---|
| | 79 | |
|---|
| | 80 | # HACK: We don't have restart implemented in the backgroundrb server |
|---|
| | 81 | # yet |
|---|
| | 82 | desc 'Restart backgroundrb server (default values)' |
|---|
| | 83 | task :restart do |
|---|
| | 84 | script = "#{RAILS_ROOT}/script/backgroundrb" |
|---|
| | 85 | |
|---|
| | 86 | if File.exists?(script) |
|---|
| | 87 | disabled_warning |
|---|
| | 88 | #`#{script} stop` |
|---|
| | 89 | #`sleep 2` |
|---|
| | 90 | #`#{script} start` |
|---|
| | 91 | else |
|---|
| | 92 | puts "Backgroundrb is not installed. Run 'rake backgroundrb:setup' first!" |
|---|
| | 93 | end |
|---|
| | 94 | end |
|---|
| | 95 | end |
|---|