namespace :provision do
desc "Setup the shared directory content" task :shared do invoke 'sozo:upload:dirs' invoke 'sozo:upload:files' end desc "Setup permissions on the account" task :permissions do on release_roles :all do within release_path do execute :sudo, 'chown', "#{fetch(:username)}:#{fetch(:group)}", "#{release_path}/" execute :sudo, "find", "#{deploy_to}/shared", '-not \(', "-name '#{fetch(:username)}' -or -group '#{fetch(:group)}'", '\) -print0 | sudo xargs --no-run-if-empty --null --max-procs=0 chown', "#{fetch(:username)}:#{fetch(:group)}" execute :sudo, "chmod", "770 #{release_path}/" execute :sudo, "find", "#{release_path}/magento", '-type d -print0 | sudo xargs --no-run-if-empty --null --max-procs=0 chmod 770' execute :sudo, "find", "#{release_path}/magento", '-type f -print0 | sudo xargs --no-run-if-empty --null --max-procs=0 chmod 660' if test("[ -f #{release_path}/magento/bin/magento ]") execute :sudo, "chmod", "+x", "#{release_path}/magento/bin/magento" end execute :sudo, "find", "#{release_path}/magento", '-print0 | sudo xargs --no-run-if-empty --null --max-procs=0 chown', "#{fetch(:username)}:#{fetch(:group)}" # Update symlinks permission execute :sudo, "find", "#{release_path}/magento", '-type l', '-not \(', "-name '#{fetch(:username)}' -or -group '#{fetch(:group)}'", '\) -print0 | sudo xargs --no-run-if-empty --null --max-procs=0 chown', '-h', "#{fetch(:username)}:#{fetch(:group)}" end end end desc "Missing setup directory fix" task :setup_dir do on roles :app do info ("Checking for setup directory - #{release_path}/magento/setup") if test("[ -d #{release_path}/magento/setup/ ]") else upload! "#{fetch(:magento_dir)}/setup", "#{release_path}/magento/", recursive: true invoke 'provision:permissions' end end end
end