#!/usr/bin/env ruby
require 'rubygems'
$COLORED_ENABLED = false
begin
require 'colored'
$COLORED_ENABLED = true
rescue LoadError
end
def log(text)
puts text unless text.empty?
text
end
def colored(text, color=:green )
$COLORED_ENABLED ? text.send(color) : text
end
def run (command)
log colored("[RUNNING] #{command}")
system("#{command}")
end
def rm (file)
log colored("[DELETING] #{file}", :yellow)
FileUtils.rm_rf(file)
end
begin
require 'redcloth'
rescue Exception => e
log colored("[ERROR] You've to install redcloth. Run `[sudo] gem install RedCloth` and try again.", :red)
exit -1
end
begin
require 'aasm'
rescue Exception => e
log colored("[ERROR] You've to install aasm. Run `gem sources -a http://gems.github.com` and `[sudo] gem install rubyist-aasm` and try again.", :red)
exit -1
end
def with_migration_tpl_file(tpl_file)
File.open(tpl_file, 'w') {|file|
file.write <<-eos
class CreateComments < ActiveRecord::Migration
def self.up
create_table "comments", :force => true do |t|
t.column "title", :string, :limit => 50, :default => ""
t.column "comment", :text, :default => ""
t.column "created_at", :datetime, :null => false
t.column "commentable_id", :integer, :default => 0, :null => false
t.column "commentable_type", :string, :limit => 15, :default => "", :null => false
t.column "user_id", :integer, :default => 0, :null => false
end
add_index "comments", ["user_id"], :name => "fk_comments_user"
end
def self.down
drop_table :comments
end
end
eos
}
yield tpl_file
rm tpl_file
end
app = ARGV.first || "app_for_togify"
rm (app)
run "git clone git://github.com/tog/app_for_togify.git #{app}"
Dir.chdir app do
run 'rake db:migrate'
run 'rake league:db:rebuild'
run "ruby script/plugin install http://juixe.com/svn/acts_as_commentable"
run 'ruby script/generate migration create_comments'
pattern = File.join Dir.pwd, "db" , "migrate", "*create_comments.rb"
create_migration = Dir.glob(pattern).first
with_migration_tpl_file("tmp_tpl.rb") do |file|
FileUtils.cp file, create_migration
end
run "ruby script/plugin install git://github.com/linkingpaths/acts_as_scribe.git"
run "ruby script/generate acts_as_scribe_migration"
run "ruby script/plugin install git://github.com/linkingpaths/acts_as_abusable.git"
run "ruby script/generate acts_as_abusable_migration"
run "ruby script/plugin install http://svn.viney.net.nz/things/rails/plugins/acts_as_taggable_on_steroids"
run "ruby script/generate acts_as_taggable_migration"
run "ruby script/plugin install http://elitists.textdriven.com/svn/plugins/acts_as_state_machine/trunk"
run "ruby script/plugin install http://svn.redshiftmedia.com/svn/plugins/seo_urls"
run "ruby script/plugin install http://opensvn.csie.org/rails_file_column/plugins/file_column/trunk"
run "togify . --skip-tog_user"
run "rake tog:plugins:copy_resources"
run "rake db:migrate"
end