Advertisement
Guest User

Untitled

a guest
Jan 25th, 2015
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. 'use strict';
  2.  
  3. // requires
  4. var fs = require('fs');
  5. var express = require('express');
  6.  
  7. // usage message
  8. var usage = 'Usage: node compile.js <infile> <outfile> <port> <directory> [-p]\n' +
  9. ' <infile>: input jade file\n' +
  10. ' <outfile>: output html file\n' +
  11. ' <port>: port to serve <directory>\n' +
  12. ' <directory>: directory to serve\n' +
  13. ' [-p]: pretty print <outfile>'
  14.  
  15. // get options
  16. var argv = require('minimist')(process.argv.slice(2));
  17.  
  18. // check options
  19. if (argv['h']) {
  20. console.log(usage);
  21. process.exit(0);
  22. }
  23.  
  24. // set options
  25. var infile = argv['_'][0] ? argv['_'][0] : 'index.jade';
  26. var outfile = argv['_'][1] ? argv['_'][1] : 'index.html';
  27. var port = process.env.PORT || (argv['_'][2] ? argv['_'][2] : '8000');
  28. var directory = argv['_'][3] ? argv['_'][3] : __dirname;
  29. var pretty = argv['p'] ? true : false;
  30.  
  31. // compiles jade file
  32. var compile = function () {
  33. var jade = require('jade');
  34. var options = {pretty : pretty};
  35. var html = jade.renderFile(infile, options, null);
  36. fs.writeFile(outfile, html, function (err) {
  37. console.log(infile + ' has been compiled to ' + outfile);
  38. });
  39. }
  40.  
  41. // watch infile
  42. if (!fs.existsSync(outfile)) compile();
  43. fs.watchFile(infile, compile);
  44.  
  45. // sart web server
  46. var app = express();
  47. console.log('starting web server on port 8000')
  48. app.use(express.static(directory));
  49. app.listen(port);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement