require 'securerandom' require 'active_support/inflector' unless Capistrano::Configuration.respond_to?(:instance) abort "This extension requires Capistrano 2" end Capistrano::Configuration.instance.load do namespace :deploy do namespace :refinery do desc <<-DESC Creates the refinery core config for the application. DESC task :setup, :except => { :no_release => true } do # Change this to your app name site_name = "Heavymetal.no"; default_template = <<-EOF # encoding: utf-8 Refinery::Core.configure do |config| config.rescue_not_found = Rails.env.production? config.s3_backend = !(ENV['S3_KEY'].nil? || ENV['S3_SECRET'].nil?) config.site_name = "#{site_name}" config.base_cache_key = "#{ActiveSupport::Inflector::parameterize(site_name, '_')}" config.authenticity_token_on_frontend = true config.dragonfly_secret = "#{SecureRandom.hex(24)}" config.ie6_upgrade_message_enabled = true config.show_internet_explorer_upgrade_message = false config.menu_hide_children = true end EOF run "mkdir -p #{shared_path}/config/refinery" put default_template, "#{shared_path}/config/refinery/core.rb" end desc <<-DESC [internal] Updates the symlink for secret_token.rb file to the just deployed release. DESC task :symlink, :except => { :no_release => true } do run "ln -nfs #{shared_path}/config/refinery/core.rb #{release_path}/config/initializers/refinery/core.rb" end end after "deploy:setup", "deploy:refinery:setup" unless fetch(:skip_refinery_setup, false) after "deploy:finalize_update", "deploy:refinery:symlink" end end