You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
934 B
CoffeeScript

#!/usr/bin/env coffee
app = require('../app')
debug = require('debug')('pdfy:server')
http = require('http')
normalizePort = (val) ->
port = parseInt val, 10
if isNaN port
return val
if port >= 0
return port
return false
onError = (error) ->
if error.syscall != "listen"
throw error
bind = if typeof port == "string"
"Pipe #{port}"
else
"Port #{port}"
switch error.code
when "EACCES"
console.error "#{bind} requires elevated privileges"
process.exit 1
when "EADDRINUSE"
console.error "#{bind} is already in use"
process.exit 1
else
throw error
onListening = ->
addr = server.address()
bind = if typeof port == "string"
"pipe #{port}"
else
"port #{port}"
debug("Listening on #{bind}")
port = normalizePort(process.env.PORT || '3000')
app.set('port', port)
server = http.createServer(app)
server.listen(port)
server.on('error', onError)
server.on('listening', onListening)