Sha256: b9ab4e79dd013284ddb8b14e50065ee135bfd5fda045133126a9f83d0c58a08b
Contents?: true
Size: 1.19 KB
Versions: 5
Compression:
Stored size: 1.19 KB
Contents
require 'capistrano/bundle_rsync/scm' require 'capistrano/configuration/filter' class Capistrano::BundleRsync::LocalGit < Capistrano::BundleRsync::SCM def check raise ArgumentError.new('`repo_url` must be local path to use `local_git` scm') unless local_path?(repo_url) exit 1 unless execute("git ls-remote #{repo_url}") execute("mkdir -p #{config.local_base_path}") end def clone end def update end def create_release end def rsync_release hosts = ::Capistrano::Configuration.env.filter(release_roles(:all)) rsync_options = config.rsync_options Parallel.each(hosts, in_threads: config.max_parallels(hosts)) do |host| ssh = config.build_ssh_command(host) execute :rsync, "#{rsync_options} --rsh='#{ssh}' #{repo_url}/ #{host}:#{release_path}/" end end def set_current_revision within repo_url do set :current_revision, capture(:git, "rev-parse --short HEAD") end end private def local_path?(repo_url) return !( repo_url.start_with?('http://') or repo_url.start_with?('https://') or repo_url.start_with?('git://') or repo_url.start_with?('git@') or repo_url.start_with?('ssh://') ) end end
Version data entries
5 entries across 5 versions & 1 rubygems