Sha256: ebe77a73a2358e0b45b672ed006b173c6ab76f7e628734945f4ddb81395d8839

Contents?: true

Size: 1.4 KB

Versions: 31

Compression:

Stored size: 1.4 KB

Contents

module LitmusPaper
  module CLI
    class Server
      class Options
        def parse!(args)
          args, options = args.dup, {}
          options[:unicorn_config] = "/etc/litmus_unicorn.rb"
          options[:daemonize] = false
          options[:Host] = "0.0.0.0"
          options[:Port] = 9293

          opt_parser = OptionParser.new do |opts|
            opts.banner = "Usage: litmus [options]"
            opts.separator ""

            opts.on("-b", "--binding=ip", String,
                    "Binds Litmus to the specified ip.", "Default: 0.0.0.0") { |v| options[:Host] = v }
            opts.on("-d", "--daemon", "Make server run as a Daemon.") { |d| options[:daemonize] = true }
            opts.on("-p", "--port=port", "Listen Port") { |p| options[:Port] = p }
            opts.on("-c", "--unicorn-config=config", "Unicorn Config") { |c| options[:unicorn_config] = c }

            opts.separator ""

            opts.on("-h", "--help", "Show this help message.") { puts opts; exit }
          end

          opt_parser.parse! args

          options
        end
      end

      def opt_parser
        Options.new
      end

      def start
        options = opt_parser.parse!(ARGV)
        unicorn_args = ['-c', options[:unicorn_config], '-l', "#{options[:Host]}:#{options[:Port]}"]
        unicorn_args << '-D' if options[:daemonize]
        Kernel.exec('unicorn', *unicorn_args)
      end

    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
litmus_paper-1.6.2 lib/litmus_paper/cli/server.rb
litmus_paper-1.6.1 lib/litmus_paper/cli/server.rb
litmus_paper-1.6.0 lib/litmus_paper/cli/server.rb
litmus_paper-1.5.0 lib/litmus_paper/cli/server.rb
litmus_paper-1.4.2 lib/litmus_paper/cli/server.rb
litmus_paper-1.4.1 lib/litmus_paper/cli/server.rb
litmus_paper-1.3.0 lib/litmus_paper/cli/server.rb
litmus_paper-1.2.0 lib/litmus_paper/cli/server.rb
litmus_paper-1.1.1 lib/litmus_paper/cli/server.rb
litmus_paper-1.1.0 lib/litmus_paper/cli/server.rb
litmus_paper-1.0.0 lib/litmus_paper/cli/server.rb
litmus_paper-0.9.9 lib/litmus_paper/cli/server.rb
litmus_paper-0.9.7 lib/litmus_paper/cli/server.rb
litmus_paper-0.9.6 lib/litmus_paper/cli/server.rb
litmus_paper-0.9.5 lib/litmus_paper/cli/server.rb
litmus_paper-0.9.4 lib/litmus_paper/cli/server.rb
litmus_paper-0.9.3 lib/litmus_paper/cli/server.rb
litmus_paper-0.9.2 lib/litmus_paper/cli/server.rb
litmus_paper-0.9.1 lib/litmus_paper/cli/server.rb
litmus_paper-0.9.0 lib/litmus_paper/cli/server.rb