Sha256: 7525a053f4b2f46e853af8fe93b6877eeb50726ebe7c2554e4f57ee11f554cad

Contents?: true

Size: 940 Bytes

Versions: 1

Compression:

Stored size: 940 Bytes

Contents

require 'kirk'
require 'optparse'

module Kirk
  class CLI
    def self.start(argv)
      new(argv).tap { |inst| inst.run }
    end

    def initialize(argv)
      @argv    = argv.dup
      @options = default_options
    end

    def run
      parse!

      server = Kirk::Server.build(config)
      server.start
      server.join
    rescue Exception => e
      abort "[ERROR] #{e.message}"
    end

  private

    def config
      @options[:config]
    end

    def default_options
      { :config => "#{Dir.pwd}/Kirkfile" }
    end

    def parser
      @parser ||= OptionParser.new do |opts|
        opts.banner = "Usage: kirk [options] <command> [<args>]"

        opts.separator ""
        opts.separator "Server options:"

        opts.on("-c", "--config FILE",  "Load options from a config file") do |file|
          @options[:config] = file
        end
      end
    end

    def parse!
      parser.parse! @argv
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kirk-0.1.0-java lib/kirk/cli.rb