class GitDeploy
Constants
- LOCAL_DIR
Public Instance Methods
hooks()
click to toggle source
# File lib/git_deploy.rb, line 48 def hooks hooks_dir = File.join(LOCAL_DIR, 'hooks') remote_dir = "#{deploy_to}/.git/hooks" scp_upload "#{hooks_dir}/post-receive.sh" => "#{remote_dir}/post-receive" run "chmod +x #{remote_dir}/post-receive" end
init()
click to toggle source
# File lib/git_deploy.rb, line 17 def init require 'git_deploy/generator' Generator::start([]) end
log(n = nil)
click to toggle source
# File lib/git_deploy.rb, line 89 def log(n = nil) tail_args = options.tail? ? '-f' : "-n#{n || options.lines}" run "tail #{tail_args} #{deploy_to}/log/deploy.log" end
rerun()
click to toggle source
# File lib/git_deploy.rb, line 62 def rerun run <<-BASH, :echo => false bash -e -c ' cd '#{deploy_to}' declare -a revs=( $(git rev-parse HEAD@{1} HEAD) ) deploy/after_push ${revs[@]} 2>&1 | tee -a log/deploy.log ' BASH end
restart()
click to toggle source
# File lib/git_deploy.rb, line 57 def restart run "cd #{deploy_to} && deploy/restart 2>&1 | tee -a log/deploy.log" end
rollback()
click to toggle source
# File lib/git_deploy.rb, line 73 def rollback run <<-BASH, :echo => false bash -e -c ' cd '#{deploy_to}' declare -a revs=( $(git rev-parse HEAD HEAD@{1}) ) git reset --hard ${revs[1]} callback=after_push [ -x deploy/rollback ] && callback=rollback deploy/$callback ${revs[@]} 2>&1 | tee -a log/deploy.log ' BASH end
setup()
click to toggle source
# File lib/git_deploy.rb, line 25 def setup sudo = options.sudo? ? "#{sudo_cmd} " : '' unless run_test("test -x #{deploy_to}") run ["#{sudo}mkdir -p #{deploy_to}"] do |cmd| cmd << "#{sudo}chown $USER #{deploy_to}" if options.sudo? cmd end end run [] do |cmd| cmd << "chmod g+ws #{deploy_to}" if options.shared? cmd << "cd #{deploy_to}" cmd << "git init #{options.shared? ? '--shared' : ''}" cmd << "sed -i'' -e 's/master/#{branch}/' .git/HEAD" unless branch == 'master' cmd << "git config --bool receive.denyNonFastForwards false" if options.shared? cmd << "git config receive.denyCurrentBranch ignore" end invoke :hooks end
upload(*files)
click to toggle source
# File lib/git_deploy.rb, line 95 def upload(*files) files = files.map { |f| Dir[f.strip] }.flatten abort "Error: Specify at least one file to upload" if files.empty? scp_upload files.inject({}) { |all, file| all[file] = File.join(deploy_to, file) all } end