From efa850558facf2fbaaf226f1444802da83924b82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 3 Feb 2010 18:49:47 +0100 Subject: Make bin/rails call rails/commands/application, fix generators usage and update .gitignores. --- railties/lib/rails/commands.rb | 79 +++++++++++++++++++++++++++++++++++------- 1 file changed, 66 insertions(+), 13 deletions(-) (limited to 'railties/lib/rails/commands.rb') 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 [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 -- cgit v1.2.3