1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #!/usr/bin/env ruby
- require File.expand_path('../../spec/support/detect_rails_version', __FILE__)
- unless ARGV[0]
- puts <<-EOF
- Usage: ./script/#{__FILE__} COMMAND [ARGS]
- The command will be run in the context of the local rails
- app stored in test-rails-app.
- Examples:
- ./script/local server
- ./script/local c
- ./script/local rake db:migrate
- EOF
- exit(1)
- end
- # Set up some variables
- rails_version = detect_rails_version || '3.0.0'
- test_app_dir = ".test-rails-apps"
- test_app_path = "#{test_app_dir}/test-rails-app-#{rails_version}"
- # Ensure .test-rails-apps is created
- system "mkdir #{test_app_dir}" unless File.exists?(test_app_dir)
- # Create the sample rails app if it doesn't already exist
- unless File.exists? test_app_path
- system "RAILS='#{rails_version}' bundle exec rails new #{test_app_path} -m spec/support/rails_template_with_data.rb"
- end
- # Link this rails app
- system "rm test-rails-app"
- system "ln -s #{test_app_path} test-rails-app"
- # If it's a rails command, auto add the rails script
- RAILS_COMMANDS = %w{generate console server dbconsole g c s runner}
- args = RAILS_COMMANDS.include?(ARGV[0]) ? ["rails", ARGV].flatten : ARGV
- # Run the command
- exec "cd test-rails-app && GEMFILE=../Gemfile bundle exec #{args.join(" ")}"
|