aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/commands.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-02-03 18:49:47 +0100
committerJosé Valim <jose.valim@gmail.com>2010-02-03 18:49:47 +0100
commitefa850558facf2fbaaf226f1444802da83924b82 (patch)
tree236380296b0d0f54f5d2e6d8523930d72e9ff645 /railties/lib/rails/commands.rb
parent391f2543c96a9b3de4e44f4ea6aeee2f53ad9e5c (diff)
downloadrails-efa850558facf2fbaaf226f1444802da83924b82.tar.gz
rails-efa850558facf2fbaaf226f1444802da83924b82.tar.bz2
rails-efa850558facf2fbaaf226f1444802da83924b82.zip
Make bin/rails call rails/commands/application, fix generators usage and update .gitignores.
Diffstat (limited to 'railties/lib/rails/commands.rb')
-rw-r--r--railties/lib/rails/commands.rb79
1 files changed, 66 insertions, 13 deletions
diff --git a/railties/lib/rails/commands.rb b/railties/lib/rails/commands.rb
index 841e98a0dc..f0dcf61d98 100644
--- a/railties/lib/rails/commands.rb
+++ b/railties/lib/rails/commands.rb
@@ -1,17 +1,70 @@
-commands = Dir["#{File.dirname(__FILE__)}/commands/*.rb"].collect { |file_path| File.basename(file_path).split(".").first }
+if ARGV.empty?
+ ARGV << '--help'
+end
-if commands.include?(ARGV.first)
- require "#{File.dirname(__FILE__)}/commands/#{ARGV.shift}"
-else
- puts <<-USAGE
-The 'run' provides a unified access point for all the default Rails' commands.
-
-Usage: ./script/run <command> [OPTIONS]
+HELP_TEXT = <<-EOT
+Usage: rails COMMAND [ARGS]
+
+The most common rails commands are:
+ generate Generate new code (short-cut alias: "g")
+ console Start the Rails console (short-cut alias: "c")
+ server Start the Rails server (short-cut alias: "s")
+ dbconsole Start a console for the database specified in config/database.yml
+ (short-cut alias: "db")
+
+In addition to those, there are:
+ application Generate the Rails application code
+ destroy Undo code generated with "generate"
+ benchmarker See how fast a piece of code runs
+ profiler Get profile information from a piece of code
+ plugin Install a plugin
+ runner Run a piece of code in the application environment
+
+All commands can be run with -h for more information.
+EOT
-Examples:
- ./script/run generate controller Admin
- ./script/run process reaper
-USAGE
- puts "Choose: #{commands.join(", ")}"
+case ARGV.shift
+when 'g', 'generate'
+ require ENV_PATH
+ require 'rails/commands/generate'
+when 'c', 'console'
+ require 'rails/commands/console'
+ require APP_PATH
+ Rails::Console.start(Rails::Application)
+when 's', 'server'
+ require 'rails/commands/server'
+ Dir.chdir(ROOT_PATH)
+ Rails::Server.start
+when 'db', 'dbconsole'
+ require 'rails/commands/dbconsole'
+ require APP_PATH
+ Rails::DBConsole.start(Rails::Application)
+
+when 'application'
+ require 'rails/commands/application'
+when 'destroy'
+ require ENV_PATH
+ require 'rails/commands/destroy'
+when 'benchmarker'
+ require ENV_PATH
+ require 'rails/commands/performance/benchmarker'
+when 'profiler'
+ require ENV_PATH
+ require 'rails/commands/performance/profiler'
+when 'plugin'
+ require APP_PATH
+ require 'rails/commands/plugin'
+when 'runner'
+ require 'rails/commands/runner'
+ require ENV_PATH
+
+when '--help', '-h'
+ puts HELP_TEXT
+when '--version', '-v'
+ ARGV.unshift '--version'
+ require 'rails/commands/application'
+else
+ puts "Error: Command not recognized"
+ puts HELP_TEXT
end \ No newline at end of file