Sha256: ad44e44fbfb5947e5800df95bb2bb7362242edf9111d24748480001d72e1bc5d

Contents?: true

Size: 810 Bytes

Versions: 1

Compression:

Stored size: 810 Bytes

Contents

require "rbsh"
require "optparse"

class Rbsh::CLI
  def initialize(args=[], config={})
    @config = config
    @args, @opts = parse(args)

    @shell = Rbsh::Shell.new
  end

  def self.start(given_args=ARGV, config={})
    instance = new(given_args, config)
    instance.run
  end

  def run
    if    @opts.has_key? :v
      puts Rbsh::VERSION
    elsif @opts.has_key? :e
      puts @shell.load_script!(@opts[:e]).run!.to_s
    else
      script_file = ARGV[0]
      script = File.open(script_file).read
      puts @shell.load_script!(script).run!.to_s
    end
  end

  private

  def parse(args)
    opts = {}
    parser = OptionParser.new
    parser.on("-e 'command'")    { |v| opts[:e] = v }
    parser.on("-v", "--version") { |v| opts[:v] = v }

    parser.parse!(args)
    return args, opts
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rbsh-0.0.2 lib/rbsh/cli.rb