Sha256: 95add760950dbdfa98cbc8256b6985035c59ccc5c50eb12ce691a330fcbdefcd

Contents?: true

Size: 723 Bytes

Versions: 9

Compression:

Stored size: 723 Bytes

Contents

# frozen_string_literal: true

require 'concurrent/delay'
module Bolt
  class Plugin
    class Prompt
      def initialize(*_args); end

      def name
        'prompt'
      end

      def hooks
        [:resolve_reference]
      end

      def validate_resolve_reference(opts)
        raise Bolt::ValidationError, "Prompt requires a 'message'" unless opts['message']
      end

      def resolve_reference(opts)
        # rubocop:disable Style/GlobalVars
        $future ? STDERR.print("#{opts['message']}: ") : STDOUT.print("#{opts['message']}: ")
        value = STDIN.noecho(&:gets).chomp
        $future ? STDERR.puts : STDOUT.puts
        # rubocop:enable Style/GlobalVars

        value
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
bolt-1.47.0 lib/bolt/plugin/prompt.rb
bolt-1.45.0 lib/bolt/plugin/prompt.rb
bolt-1.44.0 lib/bolt/plugin/prompt.rb
bolt-1.43.0 lib/bolt/plugin/prompt.rb
bolt-1.42.0 lib/bolt/plugin/prompt.rb
bolt-1.41.0 lib/bolt/plugin/prompt.rb
bolt-1.40.0 lib/bolt/plugin/prompt.rb
bolt-1.39.0 lib/bolt/plugin/prompt.rb
bolt-1.38.0 lib/bolt/plugin/prompt.rb