Make bin/rails call rails/commands/application, fix generators usage and update .gitignores.

This commit is contained in:
José Valim 2010-02-03 18:49:47 +01:00
parent 391f2543c9
commit efa850558f
8 changed files with 77 additions and 112 deletions

5
.gitignore vendored
View File

@ -14,9 +14,8 @@ railties/test/fixtures/tmp
railties/test/initializer/root/log
railties/doc/guides/html/images
railties/doc/guides/html/stylesheets
benches
railties/guides/output
bin
vendor/gems/
railties/tmp
bin
.bundle
pkg

View File

@ -1,30 +1,11 @@
if File.exists?(Dir.getwd + '/script/rails')
exec(Dir.getwd + '/script/rails', *ARGV)
else
begin
require 'rails/ruby_version_check'
rescue LoadError
# If people are not using gems, the load path must still
# be correct.
# TODO: Remove the begin / rescue block somehow
$:.unshift File.expand_path('../../lib', __FILE__)
$:.unshift File.expand_path('../../../activesupport/lib', __FILE__)
$:.unshift File.expand_path('../../../actionpack/lib', __FILE__)
require 'rails/ruby_version_check'
end
railties_path = File.expand_path('../../lib', __FILE__)
$:.unshift(railties_path) if File.directory?(railties_path) && !$:.include?(railties_path)
require 'rails/ruby_version_check'
Signal.trap("INT") { puts; exit }
require 'rails/version'
if %w(--version -v).include? ARGV.first
puts "Rails #{Rails::VERSION::STRING}"
exit(0)
end
ARGV << "--help" if ARGV.empty?
require 'rails/generators'
require 'generators/rails/app/app_generator'
Rails::Generators::AppGenerator.start
require 'rails/commands/application'
end

View File

@ -1,3 +1,4 @@
.bundle
db/*.sqlite3
log/*.log
tmp/**/*

View File

@ -6,4 +6,4 @@ APP_PATH = File.expand_path('../../config/application', __FILE__)
ROOT_PATH = File.expand_path('../..', __FILE__)
require BOOT_PATH
require 'rails/commands/rails'
require 'rails/commands'

View File

@ -1,17 +1,70 @@
commands = Dir["#{File.dirname(__FILE__)}/commands/*.rb"].collect { |file_path| File.basename(file_path).split(".").first }
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]
Examples:
./script/run generate controller Admin
./script/run process reaper
USAGE
puts "Choose: #{commands.join(", ")}"
if ARGV.empty?
ARGV << '--help'
end
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
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

View File

@ -1,67 +0,0 @@
if ARGV.empty?
ARGV << '--help'
end
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
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
else
puts "Error: Command not recognized"
puts HELP_TEXT
end

View File

@ -9,8 +9,6 @@ require 'active_support/core_ext/hash/deep_merge'
require 'active_support/core_ext/module/attribute_accessors'
require 'active_support/core_ext/string/inflections'
# TODO: Do not always push on vendored thor
$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/vendor/thor-0.12.3/lib")
require 'rails/generators/base'
require 'rails/generators/named_base'
@ -175,7 +173,7 @@ module Rails
groups[base] << namespace
end
puts "Usage: generate GENERATOR [args] [options]"
puts "Usage: rails generate GENERATOR [args] [options]"
puts
puts "General options:"
puts " -h, [--help] # Print generators options and usage"

View File

@ -261,7 +261,7 @@ module Rails
# Use Rails default banner.
#
def self.banner
"#{$0} #{generator_name} #{self.arguments.map{ |a| a.usage }.join(' ')} [options]"
"rails generate #{generator_name} #{self.arguments.map{ |a| a.usage }.join(' ')} [options]"
end
# Sets the base_name taking into account the current class namespace.