Sha256: bc06c547f64c2509033da5ccbe0be1a26887b22eac72504231d88d18195ae344
Contents?: true
Size: 1.99 KB
Versions: 1
Compression:
Stored size: 1.99 KB
Contents
#!/usr/bin/env ruby require 'rubygems' require 'dav4rack/version' require 'getoptlong' def print_help_msg print_version_info puts "Usage: dav4rack [opts]" puts " --help Print help message" puts " --version Print version information" puts " --username name Set username" puts " --password pass Set password" puts " --root /share/path Set path to share directory" end def print_version_info puts "DAV 4 Rack - Rack based WebDAV Framework - Version: #{DAV4Rack::VERSION}" end opts = GetoptLong.new( ['--username', '-u', GetoptLong::REQUIRED_ARGUMENT], ['--password', '-p', GetoptLong::REQUIRED_ARGUMENT], ['--help', '-h', GetoptLong::NO_ARGUMENT], ['--version', '-v', GetoptLong::NO_ARGUMENT], ['--root', '-r', GetoptLong::REQUIRED_ARGUMENT] ) credentials = {} opts.each do |opt,arg| case opt when '--help' print_help_msg exit(0) when '--username' credentials[:username] = arg when '--password' credentials[:password] = arg when '--root' credentials[:root] = arg unless(File.exists?(arg) && File.directory?(arg)) puts "ERROR: Path provided is not a valid directory (#{arg})" exit(-1) end when '--version' print_version_info exit(0) else puts "ERROR: Unknown option provided" exit(-1) end end require 'dav4rack' app = Rack::Builder.new do use Rack::ShowExceptions use Rack::CommonLogger use Rack::Reloader use Rack::Lint run DAV4Rack::Handler.new(credentials) end.to_app runners = [] runners << lambda do |x| print 'Looking for unicorn... ' require 'unicorn' puts 'OK' Unicorn.run(x, :listeners => ["0.0.0.0:3000"]) end runners << lambda do |x| print 'Looking for mongrel... ' require 'mongrel' puts 'OK' Rack::Handler::Mongrel.run(x, :Port => 3000) end runners << lambda do |x| puts 'Loading WEBrick' Rack::Handler::WEBrick.run(x, :Port => 3000) end begin runner = runners.shift runner.call(app) rescue LoadError puts 'FAILED' retry unless runners.empty? end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dav4rack-0.1.3 | bin/dav4rack |