diff --git a/README.md b/README.md index 60b9b25..0865817 100644 --- a/README.md +++ b/README.md @@ -18,4 +18,23 @@ $ ws [port] ``` The `port` arg is optional, the default is 8000. +Use with Logstalgia +=================== +The `default` log format is compatible with [logstalgia](http://code.google.com/p/logstalgia/). + +Write your log output to disk: +```sh +$ ws --logger default > web.log +``` + +Then visualise in logstalgia: +```sh +$ logstalgia web.log +``` + +Or pipe directly into logstalgia for real-time visualisation: +```sh +$ ws --logger default | logstalgia - +``` + [![githalytics.com alpha](https://cruel-carlota.pagodabox.com/050b17b4263c08f12a2a9d9bbda80025 "githalytics.com")](http://githalytics.com/75lb/local-web-server) diff --git a/package.json b/package.json index 7790609..626aa29 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,15 @@ { "name": "local-web-server", - "version": "0.1.3", + "version": "0.1.4", "description": "Local web server", "bin": { - "ws": "./server.js" + "ws": "./server.js" }, "repository": "https://github.com/75lb/local-web-server", "author": "Lloyd Brookes", "license": "BSD", "dependencies": { - "connect": "~2.7.11" + "connect": "~2.7.11", + "nature": "0.0.4" } } diff --git a/server.js b/server.js index 705b4ba..bb7a760 100755 --- a/server.js +++ b/server.js @@ -1,24 +1,38 @@ #!/usr/bin/env node -var connect = require('connect'); +var connect = require('connect'), + Thing = require("nature").Thing; -/** -usage: -$ ws -*/ +process.argv.splice(0, 2); -var port = process.argv[2] || 8000, - loggerProfile = process.argv[3] || "dev"; +var usage = "usage: ws [--port|-p ] [--log-format|-p dev|default|short|tiny]"; +var options = new Thing() + .define({ name: "port", alias: "p", type: "number", defaultOption: true, default: 8000 }) + .define({ name: "log-format", alias: "f", type: "string", default: "dev" }) + .define({ name: "help", alias: "h", type: "boolean" }) + .set(process.argv); -connect.logger.token('date', function(req, res){ - var a = new Date(); - return (a.getDate() + "/" + a.getUTCMonth() + "/" + a.getFullYear() + ":" + a.toTimeString()) - .replace("GMT", "").replace(" (BST)", ""); -}); - -connect() - .use(connect.logger(loggerProfile)) - .use(connect.static(process.cwd())) - .use(connect.directory(process.cwd())) - .listen(port); - -process.stderr.write("listening on port " + port + "\n"); \ No newline at end of file +if (!options.valid){ + console.log(usage); + throw new Error(options.validationMessages); + +} else if (options.help){ + console.log(usage); + +} else { + /** + customised connect.logger :date token, purely to satisfy Logstalgia. + */ + connect.logger.token('date', function(req, res){ + var a = new Date(); + return (a.getDate() + "/" + a.getUTCMonth() + "/" + a.getFullYear() + ":" + a.toTimeString()) + .replace("GMT", "").replace(" (BST)", ""); + }); + + connect() + .use(connect.logger(options["log-format"])) + .use(connect.static(process.cwd())) + .use(connect.directory(process.cwd())) + .listen(options.port); + + process.stderr.write("listening on port " + options.port + "\n"); +}