class Object

Constants

IP_DISCO_SERVICE
LAN_IP
MAX_DISCOVER_WAIT
MAX_PORT
PRIVATE_LIST_FILE

Public Instance Methods

check_args(dir, port) click to toggle source
# File bin/servedir, line 19
def check_args(dir, port)
        if !File.directory?(File.expand_path(dir))
                puts "WARNING: '#{dir}' is not a directory"
        end

        if port > MAX_PORT
                puts "ERROR: port numer too high, #{port} is > #{MAX_PORT}"
                exit
        end
end
print_addresses(dir, port) click to toggle source
start_server(dir, port) click to toggle source
# File bin/servedir, line 61
def start_server(dir, port)
        config = {
                :DocumentRoot => dir,
                :Port => port,
                :DocumentRootOptions => { :FancyIndexing => true },
        }

        private_list_file = File.join(dir, PRIVATE_LIST_FILE)
        if File.exist?(private_list_file)
                patterns = File.readlines(private_list_file).map(&:strip)
                ignored_files = patterns.reject(&:empty?).reject { |f| f.start_with?('#') }
                ignored_files << PRIVATE_LIST_FILE
                config[:DocumentRootOptions][:NondisclosureName] = ignored_files
        end

        server = WEBrick::HTTPServer.new(config)

        ['INT', 'TERM'].each { |signal|
                trap(signal) {server.shutdown}
        }

        server.start
end