bin/oaf
#!/usr/bin/ruby
require 'optparse'
require 'oaf'
options = {
:port => 9000,
:default_response => ''
}
begin
OptionParser.new do |opts|
opts.banner = [
'oaf - Care-free web app prototyping using files and scripts',
'', 'SYNOPSIS:', ' oaf [options] [path]', '', 'OPTIONS:'].join "\n"
opts.on('-p', '--port PORT', 'Listening port. Default=9000') do |v|
if not v.to_i.to_s == v.to_s
puts "Port number must be an integer"
exit 1
end
options[:port] = v.to_s
ARGV.shift
end
opts.on('--default-response FILE', 'Path to default response file') do |v|
options[:default_response] = v.to_s
ARGV.shift
end
opts.on('--version', 'Show the version number') do
puts Oaf::VERSION
exit 0
end
opts.on_tail('-h', '--help', 'Show this message') do
puts opts
exit 0
end
end.parse!
rescue OptionParser::InvalidOption => e
puts e.message
exit 1
end
if ARGV.length == 0
options[:path] = Dir.pwd
elsif ARGV.length == 1
options[:path] = File.expand_path ARGV[0]
else
puts "Unknown arguments: #{ARGV[1..ARGV.length].join(' ')}"
exit 1
end
Oaf::HTTPServer.serve options