Sha256: 9e49a10b862a5e8ff5d958f742ce2cb90d3060a87d238e8798c98c23cbcf57ef

Contents?: true

Size: 1.23 KB

Versions: 4

Compression:

Stored size: 1.23 KB

Contents

require_relative './all'
module CapistranoMulticonfigParallel
  # this is the class that will be invoked from terminal , and willl use the invoke task as the primary function.
  class CLI
    class << self
      include CapistranoMulticonfigParallel::ApplicationHelper

      # method used to start
      def start
        before_start
        arguments = multi_fetch_argv(original_args)
        configuration_valid?
        execute_start(arguments)
      end

      def execute_start(arguments)
        if arguments[CapistranoMulticonfigParallel::ENV_KEY_JOB_ID].blank?
          run_the_application
        else
          ARGV.reject! { |arg| arg_is_in_default_config?(arg) }
          run_capistrano
        end
      end

      def run_capistrano
        if capistrano_version_2?
          require 'capistrano/cli'
          Capistrano::CLI.execute
        else
          require 'capistrano/all'
          Capistrano::Application.new.run
        end
      end

      def before_start
        check_terminal_tty
        CapistranoMulticonfigParallel.original_args = ARGV.dup
      end

      def run_the_application
        execute_with_rescue('stderr') do
          CapistranoMulticonfigParallel::Application.new.start
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
capistrano_multiconfig_parallel-1.0.5 lib/capistrano_multiconfig_parallel/cli.rb
capistrano_multiconfig_parallel-1.0.4 lib/capistrano_multiconfig_parallel/cli.rb
capistrano_multiconfig_parallel-1.0.3 lib/capistrano_multiconfig_parallel/cli.rb
capistrano_multiconfig_parallel-1.0.2 lib/capistrano_multiconfig_parallel/cli.rb