Sha256: 87168c8a6d0f388ae21b9238adc08ccb246619a5829325b0b356954f65268024

Contents?: true

Size: 1.68 KB

Versions: 1

Compression:

Stored size: 1.68 KB

Contents

require 'capistrano/git'

namespace :git_local do

  def strategy
    @strategy ||= Capistrano::Git.new(self, fetch(:git_strategy, Capistrano::Git::DefaultStrategy))
  end

  desc 'Check that the repository is reachable'
  task :check do |task|
    run_locally do debug "Task #{task} start" end

    fetch(:branch)
    run_locally do
      exit 1 unless strategy.check
    end

    run_locally do debug "Task #{task} finish" end
  end

  desc 'Clone the repo to the cache'
  task :clone do |task|
    run_locally do debug "Task #{task} start" end

    run_locally do
      if strategy.test
        info t(:mirror_exists, at: repo_path)
      else
        within deploy_path do
          strategy.clone
        end
      end
    end

    run_locally do debug "Task #{task} finish" end
  end

  desc 'Update the repo mirror to reflect the origin state'
  task :update => :clone do |task|
    run_locally do debug "Task #{task} start" end
    run_locally do
      within repo_path do
        strategy.update
      end
    end

    run_locally do debug "Task #{task} finish" end
  end

  desc 'Copy repo to releases'
  task :create_release => :update do |task|
    run_locally do debug "Task #{task} start" end

    run_locally do
      within repo_path do
        execute :mkdir, '-p', release_path
        strategy.release
      end
    end

    run_locally do debug "Task #{task} finish" end
  end

  desc 'Determine the revision that will be deployed'
  task :set_current_revision do |task|
    run_locally do debug "Task #{task} start" end

    run_locally do
      within repo_path do
        set :current_revision, strategy.fetch_revision
      end
    end

    run_locally do debug "Task #{task} finish" end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
capistrano-git-local-0.1.1 lib/capistrano/git-local.rb