Sha256: 365f59920a5b9e7854008b99edc9ebbc3d64edff92e3beb73d9fe65880fc87ca

Contents?: true

Size: 1.55 KB

Versions: 34

Compression:

Stored size: 1.55 KB

Contents

require "capistrano/upload_task"

module Capistrano
  module TaskEnhancements
    def before(task, prerequisite, *args, &block)
      prerequisite = Rake::Task.define_task(prerequisite, *args, &block) if block_given?
      Rake::Task[task].enhance [prerequisite]
    end

    def after(task, post_task, *args, &block)
      Rake::Task.define_task(post_task, *args, &block) if block_given?
      task = Rake::Task[task]
      task.enhance do
        post = Rake.application.lookup(post_task, task.scope)
        raise ArgumentError, "Task #{post_task.inspect} not found" unless post
        post.invoke
      end
    end

    def define_remote_file_task(task, target_roles)
      Capistrano::UploadTask.define_task(task) do |t|
        prerequisite_file = t.prerequisites.first
        file = shared_path.join(t.name)

        on roles(target_roles) do
          unless test "[ -f #{file.to_s.shellescape} ]"
            info "Uploading #{prerequisite_file} to #{file}"
            upload! File.open(prerequisite_file), file
          end
        end
      end
    end

    def ensure_stage
      Rake::Task.define_task(:ensure_stage) do
        unless stage_set?
          puts t(:stage_not_set)
          exit 1
        end
      end
    end

    def tasks_without_stage_dependency
      stages + default_tasks
    end

    def default_tasks
      %w{install}
    end

    def exit_deploy_because_of_exception(ex)
      warn t(:deploy_failed, ex: ex.message)
      invoke "deploy:failed"
      exit(false)
    end

    def deploying?
      fetch(:deploying, false)
    end
  end
end

Version data entries

34 entries across 34 versions & 2 rubygems

Version Path
capistrano-3.19.2 lib/capistrano/dsl/task_enhancements.rb
capistrano-3.19.1 lib/capistrano/dsl/task_enhancements.rb
capistrano-3.19.0 lib/capistrano/dsl/task_enhancements.rb
capistrano-3.18.1 lib/capistrano/dsl/task_enhancements.rb
honeybadger-5.4.0 vendor/bundle/ruby/3.2.0/gems/capistrano-3.18.0/lib/capistrano/dsl/task_enhancements.rb
honeybadger-5.3.0 vendor/bundle/ruby/3.2.0/gems/capistrano-3.18.0/lib/capistrano/dsl/task_enhancements.rb
capistrano-3.18.0 lib/capistrano/dsl/task_enhancements.rb
capistrano-3.17.3 lib/capistrano/dsl/task_enhancements.rb
capistrano-3.17.2 lib/capistrano/dsl/task_enhancements.rb
capistrano-3.17.1 lib/capistrano/dsl/task_enhancements.rb
capistrano-3.17.0 lib/capistrano/dsl/task_enhancements.rb
capistrano-3.16.0 lib/capistrano/dsl/task_enhancements.rb
capistrano-3.15.0 lib/capistrano/dsl/task_enhancements.rb
capistrano-3.14.1 lib/capistrano/dsl/task_enhancements.rb
capistrano-3.14.0 lib/capistrano/dsl/task_enhancements.rb
capistrano-3.13.0 lib/capistrano/dsl/task_enhancements.rb
capistrano-3.12.1 lib/capistrano/dsl/task_enhancements.rb
capistrano-3.12.0 lib/capistrano/dsl/task_enhancements.rb
honeybadger-4.5.3 vendor/bundle/ruby/2.6.0/gems/capistrano-3.11.0/lib/capistrano/dsl/task_enhancements.rb
capistrano-3.11.2 lib/capistrano/dsl/task_enhancements.rb