diff options
Diffstat (limited to 'puke')
-rwxr-xr-x | puke | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -0,0 +1,30 @@ +#!/usr/bin/env ruby +require_relative "lib/puke" +require "optparse" + +opts = {} +OptionParser.new { |o| + o.on("-v", "--verbose") { opts[:verbose] = true } + o.on("-d", "--datadir DATADIR") { |v| opts[:datadir] = v } + o.on("-l", "--listen ADDRESS:PORT") { |v| opts[:listen] = v } + o.on("-s", "--secret SECRET") { |v| opts[:secret] = v } +}.parse!(ARGV) +ARGV.empty? or raise "unknown argument(s): %p" % ARGV + +opts[:datadir] or raise "-d (--datadir) option is required" +opts[:listen] or raise "-l (--listen) option is required" + +# Setup Puke and verify the options +Puke.setup(**opts) +server = Puke::Server.new + +# Set exiting handler +handler = proc { + server.shutdown + Puke.close +} +trap("INT", handler) +trap("TERM", handler) + +# Start the WEBrick server +server.start |