130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
# File 'lib/chef-deploy/cached_deploy.rb', line 130
def symlink(release_to_link=latest_release)
Chef::Log.info "symlinking and finishing deploy"
symlink = false
begin
chef_run [ "chmod -R g+w #{release_to_link}",
"rm -rf #{release_to_link}/log #{release_to_link}/public/system #{release_to_link}/tmp/pids",
"mkdir -p #{release_to_link}/tmp",
"ln -nfs #{shared_path}/log #{release_to_link}/log",
"mkdir -p #{release_to_link}/public",
"mkdir -p #{release_to_link}/config",
"ln -nfs #{shared_path}/system #{release_to_link}/public/system",
"ln -nfs #{shared_path}/pids #{release_to_link}/tmp/pids",
"ln -nfs #{shared_path}/config/database.yml #{release_to_link}/config/database.yml",
"chown -R #{user}:#{group} #{release_to_link}"
].join(" && ")
symlink = true
chef_run "rm -f #{current_path} && ln -nfs #{release_to_link} #{current_path} && chown -R #{user}:#{group} #{current_path}"
rescue => e
chef_run "rm -f #{current_path} && ln -nfs #{previous_release(release_to_link)} #{current_path} && chown -R #{user}:#{group} #{current_path}" if symlink
chef_run "rm -rf #{release_to_link}"
raise e
end
end
|