Sha256: c66bf8a393117afc49d6f1b9a799c6a8d9d7a541fe562b7dd03af5c52076c97d

Contents?: true

Size: 1.29 KB

Versions: 6

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

require 'tmpdir'
require 'capistrano/scm/plugin'
require 'capistrano/i18n'
require 'dkdeploy/i18n'

include Capistrano::DSL

module Dkdeploy
  module SCM
    # Class for the capistrano copy
    #
    class Copy < Capistrano::SCM::Plugin
      def set_defaults
        set_if_empty :copy_source, 'htdocs'
        set_if_empty :copy_exclude, Array[
          'vendor/bundle/**',
          'Gemfile*',
          '**/.git',
          '**/.svn',
          '**/.DS_Store',
          '.settings',
          '.project',
          '.buildpath',
          'Capfile',
          'Thumbs.db',
          'composer.lock'
        ]
        set_if_empty :copy_archive_filename, -> { [fetch(:application), rand(0x100000000).to_s(36)].join('_') + '.tar.gz' }
        set_if_empty :copy_local_tmp_dir, Dir.mktmpdir
      end

      def register_hooks
        after 'deploy:new_release_path', 'copy:create_release'
        before 'deploy:check', 'copy:check'
        before 'deploy:set_current_revision', 'copy:set_current_revision'
      end

      def define_tasks
        # Don not use method "eval_rakefile" to load rake tasks.
        # "eval_rakefile" defined wrong context and use sskit dsl api instead of capistrano dsl.
        load File.expand_path('copy.rake', __dir__)
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
dkdeploy-core-10.0.0 lib/dkdeploy/scm/copy.rb
dkdeploy-core-9.3.1 lib/dkdeploy/scm/copy.rb
dkdeploy-core-9.2.4 lib/dkdeploy/scm/copy.rb
dkdeploy-core-9.3.0 lib/dkdeploy/scm/copy.rb
dkdeploy-core-9.2.3 lib/dkdeploy/scm/copy.rb
dkdeploy-core-9.2.2 lib/dkdeploy/scm/copy.rb