diff --git a/railties/CHANGELOG b/railties/CHANGELOG index 0c651eb869882..2d21ab60b2170 100644 --- a/railties/CHANGELOG +++ b/railties/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Add 'add_new_scripts' rake task for adding new rails scripts to script/* [Jamis Buck] + * Remove bogus hyphen from script/process/reaper calls to 'ps'. #2767 [anonymous] * Copy lighttpd.conf when it is first needed, instead of on app creation [Jamis Buck] diff --git a/railties/bin/lighttpd b/railties/bin/lighttpd deleted file mode 100644 index b4cbe53d8afcd..0000000000000 --- a/railties/bin/lighttpd +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/local/bin/ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/lighttpd' \ No newline at end of file diff --git a/railties/lib/tasks/framework.rake b/railties/lib/tasks/framework.rake index 2c1d8fc451aaf..dd41873c84fd5 100644 --- a/railties/lib/tasks/framework.rake +++ b/railties/lib/tasks/framework.rake @@ -50,3 +50,22 @@ desc "Unlock this application from freeze of gems or edge and return to a fluid task :unfreeze_rails do rm_rf "vendor/rails" end + +desc "Add new scripts to the application script/ directory" +task :add_new_scripts do + local_base = "script" + edge_base = "#{File.dirname(__FILE__)}/../../bin" + + local = Dir["#{local_base}/**/*"].reject { |path| File.directory?(path) } + edge = Dir["#{edge_base}/**/*"].reject { |path| File.directory?(path) } + + edge.each do |script| + base_name = script[(edge_base.length+1)..-1] + next if base_name == "rails" + next if local.detect { |path| base_name == path[(local_base.length+1)..-1] } + if !File.directory?("#{local_base}/#{File.dirname(base_name)}") + mkdir_p "#{local_base}/#{File.dirname(base_name)}" + end + install script, "#{local_base}/#{base_name}", :mode => 0655 + end +end \ No newline at end of file