Skip to content

Instantly share code, notes, and snippets.

@robmckinnon
Created January 30, 2009 12:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save robmckinnon/55045 to your computer and use it in GitHub Desktop.
Save robmckinnon/55045 to your computer and use it in GitHub Desktop.
setups up a Rails git project and plugins using git submodules
if ARGV.empty?
puts 'usage: ruby setup_project.rb [project_name] [git_user]'
return
end
require 'fileutils'
project = ARGV[0]
git_user = ARGV.size > 1 ? ARGV[1] : 'default_user_name'
git_url = "git@github.com:#{git_user}/#{project}.git"
puts "cloning #{git_url}"
puts `git clone #{git_url}`
puts "entering #{project}"
Dir.chdir project
puts "make #{project}/vendor"
Dir.mkdir 'vendor'
puts "submodule edge rails"
puts `git submodule add git://github.com/rails/rails.git vendor/rails`
puts "commit edge rails"
puts `git commit -m 'imported edge rails as a submodule'`
puts "push edge rails"
puts `git push`
puts "make .gitignore"
File.open('.gitignore','w') do |file|
file.write "log/*.log\n"
file.write "tmp/**/*\n"
file.write "test\n"
file.write "config/database.yml\n"
file.write ".DS_Store\n"
file.write "doc\n"
end
puts "make rails project"
Dir.chdir('..')
puts `ruby #{project}/vendor/rails/railties/bin/rails #{project} -s`
Dir.chdir(project)
FileUtils.remove_dir('test', true)
FileUtils.cp('config/database.yml', 'config/database.yml.example')
puts "commit rails project"
puts `git add .`
puts `git commit -am 'generated project using edge rails'`
puts "push rails project"
puts `git push`
puts "import edge rspec, rspec_on_rails, haml, cucumber, resource_controller, and friendly_id as submodules"
puts `git submodule add git://github.com/nex3/haml.git vendor/plugins/haml`
puts `git submodule add git://github.com/dchelimsky/rspec-rails.git vendor/plugins/rspec_rails`
puts `git submodule add git://github.com/dchelimsky/rspec.git vendor/plugins/rspec`
puts `git submodule add git://github.com/giraffesoft/resource_controller.git vendor/plugins/resource_controller`
puts `git submodule add git://github.com/aslakhellesoy/cucumber.git vendor/plugins/cucumber`
puts `git submodule add git://github.com/brynary/webrat.git vendor/plugins/webrat`
puts `git submodule add git://github.com/norman/friendly_id.git vendor/plugins/friendly_id`
# `git submodule add git://github.com/dfischer/rspec-haml-scaffold-generator.git vendor/plugins/rspec_haml_scaffold_generator`
puts `ruby script/generate rspec`
puts `ruby script/generate friendly_id`
puts `git add .`
puts `git commit -am 'imported edge rspec, rspec_on_rails, haml, cucumber, resource_controller, and friendly_id as submodules'`
puts "push submodules"
puts `git push`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment