class BricksDeploy

Constants

LOCAL_DIR

Public Instance Methods

hooks() click to toggle source
# File lib/bricks_deploy.rb, line 53
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/bricks_deploy.rb, line 17
def init
  require 'bricks_deploy/generator'
  Generator::start([])
end
log(n = nil) click to toggle source
# File lib/bricks_deploy.rb, line 94
def log(n = nil)
  tail_args = options.tail? ? '-f' : "-n#{n || options.lines}"
  run "tail #{tail_args} #{deploy_to}/var/logs/deploy.log"
end
rerun() click to toggle source
# File lib/bricks_deploy.rb, line 67
  def rerun
    run <<-BASH, :echo => false
      bash -e -c '
        cd '#{deploy_to}'
        declare -a revs=( $(git rev-parse HEAD@{1} HEAD) )
        bin/deploy/remote/after_push ${revs[@]} 2>&1 | tee -a var/logs/deploy.log
      '
    BASH
  end
restart() click to toggle source
# File lib/bricks_deploy.rb, line 62
def restart
  run "cd #{deploy_to} && bin/deploy/remote/restart 2>&1 | tee -a var/logs/deploy.log"
end
rollback() click to toggle source
# File lib/bricks_deploy.rb, line 78
  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 bin/deploy/remote/rollback ] && callback=rollback
        bin/deploy/remote/$callback ${revs[@]} 2>&1 | tee -a var/logs/deploy.log
      '
    BASH
  end
setup() click to toggle source
# File lib/bricks_deploy.rb, line 27
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"
    cmd << "mkdir -p etc/"
    cmd << "echo #{options.stage} > etc/stage"
    cmd << "echo #{options.color} > etc/color"
  end

  invoke :hooks
end
upload(*files) click to toggle source
# File lib/bricks_deploy.rb, line 100
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