/test
|- shared
|- releases
|- current
|- pids
|- logs
role :asset, "remote.sever.name", :user => "server_user"
set :server_auth, '[email protected]'
alias :original_connect :connect
add_server_settings = options[:server_auth] ? options[:server_auth] =~ /#{server.to_s}/ : nil
password_value = nil
begin
connection_options = ssh_options.merge(:password => password_value, :auth_methods => ssh_options[:auth_methods] || methods.shift)
connection = Net::SSH.start(server.host, server.user, connection_options, &block)
Server.apply_to(connection, server)
end
after "deploy:restart", "deploy:minify_and_upload_assets"
task :minify_and_upload_assets, :roles => :asset do
if(minify_assets)
started_at = Time.now
server_temp_copy = "#{assets_path}-#{Time.now.strftime('%Y%m%d%H%M%S')}"
local_temp_copy = "./public/minified/#{server_temp_copy}"
begin
system "svn export --revision #{revision} #{asset_repository} #{local_temp_copy} --force"
# minify the assets
top.upload(local_temp_copy, "#{asset_server_root}", :via => :scp, :recursive => true) do |channel, name, sent, total|
print "."
end
rescue => e
puts e.message
ensure
FileUtils.rm_rf(local_temp_copy)
puts "Completed deployment to asset servers in #{(Time.now - started_at)}"
end
end
end