Sha256: 6bffb80990186088b083bf7d130bc668138a4967ebb07c05d2a7f8bc10fe3e7a

Contents?: true

Size: 863 Bytes

Versions: 1

Compression:

Stored size: 863 Bytes

Contents

require 'capistrano/git'

class Capistrano::Git
  module SubmoduleStrategy
    # do all the things a normal capistrano git session would do
    include Capistrano::Git::DefaultStrategy

    def test
      test! " [ -d #{repo_path}/.git ] "
    end

    def check
      test! :git, :'ls-remote', repo_url
    end

    def clone
      git :clone, '-b', fetch(:branch), '--recursive', repo_url, repo_path
    end

    def update
      git :remote, :update
    end

    # put the working tree in a release-branch,
    # make sure the submodules are up-to-date
    # and copy everything to the release path
    def release
      git :checkout, fetch(:branch)
      git :reset, '--hard', "origin/#{fetch(:branch)}"
      git :submodule, :update, '--init', '--recursive'
      context.execute "rsync -ar --exclude=.git\* #{repo_path}/ #{release_path}"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
capistrano-git-submodule-strategy-0.1.3 lib/capistrano/git-submodule-strategy.rb