Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- // requires
- var fs = require('fs');
- var express = require('express');
- // usage message
- var usage = 'Usage: node compile.js <infile> <outfile> <port> <directory> [-p]\n' +
- ' <infile>: input jade file\n' +
- ' <outfile>: output html file\n' +
- ' <port>: port to serve <directory>\n' +
- ' <directory>: directory to serve\n' +
- ' [-p]: pretty print <outfile>'
- // get options
- var argv = require('minimist')(process.argv.slice(2));
- // check options
- if (argv['h']) {
- console.log(usage);
- process.exit(0);
- }
- // set options
- var infile = argv['_'][0] ? argv['_'][0] : 'index.jade';
- var outfile = argv['_'][1] ? argv['_'][1] : 'index.html';
- var port = process.env.PORT || (argv['_'][2] ? argv['_'][2] : '8000');
- var directory = argv['_'][3] ? argv['_'][3] : __dirname;
- var pretty = argv['p'] ? true : false;
- // compiles jade file
- var compile = function () {
- var jade = require('jade');
- var options = {pretty : pretty};
- var html = jade.renderFile(infile, options, null);
- fs.writeFile(outfile, html, function (err) {
- console.log(infile + ' has been compiled to ' + outfile);
- });
- }
- // watch infile
- if (!fs.existsSync(outfile)) compile();
- fs.watchFile(infile, compile);
- // sart web server
- var app = express();
- console.log('starting web server on port 8000')
- app.use(express.static(directory));
- app.listen(port);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement