Sha256: 9531c42f2641fb8e95789dbdf63e2960f5d1c841c9971ab891f6efe8ae088fff

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

require 'optparse'
require 'ostruct'

module ActiveLdap
  module Command
    include GetTextSupport

    module_function
    def parse_options(argv=nil, version=nil)
      argv ||= ARGV.dup
      options = OpenStruct.new
      opts = OptionParser.new do |opts|
        yield(opts, options)

        opts.separator ""
        opts.separator _("Common options:")

        opts.on_tail("--config=CONFIG",
                     _("Specify configuration file written as YAML")) do |file|
          require 'yaml'
          config = YAML.load(File.read(file)).symbolize_keys
          Configuration::DEFAULT_CONFIG.update(config)
        end

        opts.on_tail("-h", "--help", _("Show this message")) do
          puts opts
          exit
        end

        opts.on_tail("--version", _("Show version")) do
          puts(version || VERSION)
          exit
        end
      end
      opts.parse!(argv)
      [argv, opts, options]
    end

    def read_password(prompt, input=$stdin, output=$stdout)
      output.print prompt
      system "/bin/stty -echo" if input.tty?
      input.gets.chomp
    ensure
      system "/bin/stty echo" if input.tty?
      output.puts
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ruby-activeldap-0.8.3.1 lib/active_ldap/command.rb