Sha256: 919cb6794be86787b92e3b23df0f86d949c4222b15fef4377ea6823321a3a991

Contents?: true

Size: 1.3 KB

Versions: 27

Compression:

Stored size: 1.3 KB

Contents

# frozen_string_literal: true

require 'eac_cli/runner_with/help'
require 'eac_cli/runner_with/subcommands'
require 'eac_ruby_utils/core_ext'

module EacRubyBase0
  module Runner
    require_sub __FILE__
    enable_console_speaker
    common_concern do
      include ::EacCli::RunnerWith::Help
      include ::EacCli::RunnerWith::Subcommands
      runner_definition do
        bool_opt '-q', '--quiet', 'Quiet mode.'
        bool_opt '-I', '--no-input', 'Fail if a input is requested.'
        subcommands
        alt do
          bool_opt '-V', '--version', 'Show version.', usage: true, required: true
        end
      end
    end

    def run
      on_speaker_node do |node|
        node.stderr = ::StringIO.new if parsed.quiet?
        node.stdin = FailIfRequestInput.new if parsed.no_input?
        if parsed.version?
          show_version
        else
          run_with_subcommand
        end
      end
    end

    def application_version
      runner_context.call(:application).version.to_s
    end

    def show_version
      out("#{application_version}\n")
    end

    class FailIfRequestInput
      enable_console_speaker

      %w[gets noecho].each do |method|
        define_method(method) do
          raise "Input method requested (\"#{method}\") and option --no-input is set"
        end
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 3 rubygems

Version Path
avm-tools-0.98.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
avm-tools-0.97.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
avm-tools-0.96.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
eac_ruby_base0-0.7.1 lib/eac_ruby_base0/runner.rb
avm-tools-0.95.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
eac_ruby_base0-0.7.0 lib/eac_ruby_base0/runner.rb
avm-tools-0.94.3 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
eac_ruby_base0-0.6.0 lib/eac_ruby_base0/runner.rb
avm-tools-0.94.2 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
avm-tools-0.94.1 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
eac_ruby_base0-0.5.0 lib/eac_ruby_base0/runner.rb
eac_ruby_base0-0.4.0 lib/eac_ruby_base0/runner.rb
ehbrs-tools-0.20.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
avm-tools-0.94.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
avm-tools-0.93.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
avm-tools-0.92.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
avm-tools-0.91.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
avm-tools-0.90.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
avm-tools-0.89.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
avm-tools-0.88.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb