Sha256: 1c945aabadd2a036f5829cfe4d4948438b6703a3d746b2499492f9d4e10c5277

Contents?: true

Size: 1.44 KB

Versions: 3

Compression:

Stored size: 1.44 KB

Contents

PostageApp::CLI::Command.define do
  argument :'no-header',
    optional: true,
    boolean: true,
    desc: 'Suppress display of header'

  argument :markdown,
    optional: true,
    boolean: true,
    desc: 'Emit markdown formatted description of variables'

  perform do |arguments|
    if (arguments[:markdown])
      PostageApp::Configuration.params.each do |param, config|
        config[:env_vars]&.each_with_index do |var, i|
          case (i)
          when 0
            case (default = config[:default])
            when Proc
              default = default.call
            end

            puts '* `%s`: %s (%s)' % [
              var,
              config[:desc],
              case (config[:required])
              when String
                'required %s' % config[:required]
              when true
                'required'
              else
                default ? 'default: `%s`' % default : 'optional'
              end
            ]
          else
            puts '* `%s`: Alias for `%s`' % [
              var,
              config[:env_vars][0]
            ]
          end
        end
      end
    else
      unless (arguments[:'no-header'])
        puts '%-40s %s' % [ 'Variable', 'Setting' ]
        puts '-' * 78
      end
  
      PostageApp::Configuration.params.each do |param, config|
        config[:env_vars]&.each do |var|
          puts '%-40s %s' % [
            var, ENV[var]
          ]
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
postageapp-1.4.2 lib/postageapp/cli/command/env.rb
postageapp-1.4.1 lib/postageapp/cli/command/env.rb
postageapp-1.4.0 lib/postageapp/cli/command/env.rb