Skip to content

Instantly share code, notes, and snippets.

@rauchg
Created August 27, 2010 22:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rauchg/554303 to your computer and use it in GitHub Desktop.
Save rauchg/554303 to your computer and use it in GitHub Desktop.
#!/usr/bin/env node
var connect = require('connect'),
cwd = process.cwd(),
sys = require('sys');
var usage = ''
+ '\x1b[1mUsage\x1b[0m: connect [options] [PATH]\n'
+ '\n'
+ '\x1b[1mOptions\x1b[0m:\n'
+ ' -v, --version Output connect version\n'
+ ' -p, --port Port to listen to (defaults to 8080)\n'
+ ' -H, --host Host to listen to (defaults to all)\n'
+ ' -h, --help Output help information\n';
var port = 8080;
var host = null;
var args = process.argv.slice(2),
path = '.';
while (args.length) {
var arg = args.shift();
switch (arg) {
case '-h':
case '--help':
abort(usage);
break;
case '-p':
case '--port':
port = Number(args.shift());
break;
case '-H':
case '--host':
host = args.shift();
break;
case '-v':
case '--version':
abort(connect.version);
break;
default:
path = arg;
}
}
var server = connect.createServer(
connect.staticProvider(cwd)
);
server.listen(port, host);
sys.error('HTTP server listening on http://' + (host ? host : '*') + ':' + port);
/**
* Exit with the given `str`.
*
* @param {String} str
*/
function abort(str) {
sys.error(str);
process.exit(1);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment