diff node_modules/node-static/bin/cli.js @ 69:333afcfd3f3a

added node_modules to project and fixed path to chronometer also added deps to installer script
author tzara <rc-web@kiben.net>
date Sat, 26 Oct 2013 14:12:50 +0100
parents
children 0ae87af84e2f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/node_modules/node-static/bin/cli.js	Sat Oct 26 14:12:50 2013 +0100
@@ -0,0 +1,104 @@
+#!/usr/bin/env node
+
+var fs = require('fs'),
+    path = require('path'),
+    tty = require('tty'),
+    statik = require('./../lib/node-static');
+
+    var argv = require('optimist')
+        .usage([
+            'USAGE: $0 [-p <port>] [<directory>]',
+            'simple, rfc 2616 compliant file streaming module for node']
+            .join('\n\n'))
+        .option('port', {
+            alias: 'p',
+            'default': 8080,
+            description: 'TCP port at which the files will be served'
+        })
+        .option('cache', {
+            alias: 'c',
+            description: '"Cache-Control" header setting, defaults to 3600'
+        })
+        .option('version', {
+            alias: 'v',
+            description: 'node-static version'
+        })
+        .option('headers', {
+            alias: 'H',
+            description: 'additional headers (in JSON format)'
+        })
+        .option('header-file', {
+            alias: 'f',
+            description: 'JSON file of additional headers'
+        })
+        .option('help', {
+            alias: 'h',
+            description: 'display this help message'
+        })
+        .argv;
+
+    var dir = argv._[0] || '.';
+
+    var trainwreck = fs.readFileSync(path.join(__dirname, '../etc/trainwreck.jpg')),
+				notFound = fs.readFileSync(path.join(__dirname, '../etc/404.html'))
+        .toString()
+        .replace('{{trainwreck}}', trainwreck.toString('base64'));
+
+    var colors = require('colors');
+
+    var log = function(request, response, statusCode) {
+        var d = new Date();
+        var seconds = d.getSeconds() < 10? '0'+d.getSeconds() : d.getSeconds(),
+            datestr = d.getHours() + ':' + d.getMinutes() + ':' + seconds,
+            line = datestr + ' [' + response.statusCode + ']: ' + request.url,
+            colorized = line;
+        if (tty.isatty(process.stdout.fd))
+            colorized = (response.statusCode >= 500) ? line.red.bold :
+                        (response.statusCode >= 400) ? line.red :
+                        line;
+        console.log(colorized);
+    };
+
+    var file, options;
+
+if (argv.help){
+    require('optimist').showHelp(console.log);
+    process.exit(0);
+}
+
+if (argv.version){
+    console.log('node-static', statik.version.join('.'));
+    process.exit(0);
+}
+
+if (argv.cache){
+    (options = options || {}).cache = argv.cache;
+}
+
+if (argv.headers){
+    (options = options || {}).headers = JSON.parse(argv.headers);
+}
+
+if (argv['header-file']){
+    (options = options || {}).headers =
+        JSON.parse(fs.readFileSync(argv['header-file']));
+}
+
+file = new(statik.Server)(dir, options);
+
+require('http').createServer(function (request, response) {
+    request.addListener('end', function () {
+        file.serve(request, response, function(e, rsp) {
+            if (e && e.status === 404) {
+                response.writeHead(e.status, e.headers);
+                response.end(notFound);
+                log(request, response);
+            } else {
+                log(request, response);
+            }
+        });
+    }).resume();
+}).listen(+argv.port);
+
+console.log('serving "' + dir + '" at http://127.0.0.1:' + argv.port);
+