50 lines
1.2 KiB
Plaintext
Executable File
50 lines
1.2 KiB
Plaintext
Executable File
require File.dirname(__FILE__) + '/../lib/ruby_version_check'
|
|
Signal.trap("INT") { puts; exit }
|
|
|
|
require File.dirname(__FILE__) + '/../lib/rails/version'
|
|
if %w(--version -v).include? ARGV.first
|
|
puts "Rails #{Rails::VERSION::STRING}"
|
|
exit(0)
|
|
end
|
|
|
|
require File.dirname(__FILE__) + '/../lib/generators'
|
|
|
|
if ARGV.size == 0
|
|
rails = Rails::Generators.builtin.map do |group, name|
|
|
name if group == "rails"
|
|
end
|
|
rails.compact!
|
|
rails.sort!
|
|
|
|
others = Rails::Generators.builtin.map do |group, name|
|
|
"#{group}:#{name}" unless rails.include?(name)
|
|
end.compact
|
|
others.sort!
|
|
|
|
puts "Please select a generator."
|
|
puts "Builtin: #{rails.join(', ')}."
|
|
puts "Others: #{others.join(', ')}."
|
|
|
|
exit
|
|
elsif ARGV.size == 1
|
|
ARGV << "--help"
|
|
end
|
|
|
|
Rails::Generators.builtin.each do |group, name|
|
|
require "generators/#{group}/#{name}/#{name}_generator"
|
|
end
|
|
|
|
name = ARGV.shift
|
|
middle = name.sub(':', ':generators:') if name.count(':') == 1
|
|
full = "rails:generators:#{name}" if name.count(':') == 0
|
|
|
|
if full && klass = Thor::Util.find_by_namespace(full)
|
|
klass.start
|
|
elsif middle && klass = Thor::Util.find_by_namespace(middle)
|
|
klass.start
|
|
elsif klass = Thor::Util.find_by_namespace(name)
|
|
klass.start
|
|
else
|
|
puts "Could not find generator #{name}."
|
|
end
|