mbland/pages-server

View on GitHub
bin/pages-server

Summary

Maintainability
Test Coverage
#! /usr/bin/env node

var pagesServer = require('../index.js');
var fs = require('fs');
var option = process.argv[2];

if (option === 'print-template') {
  console.log(JSON.stringify(require('../pages-config.json'), null, 2));
  process.exit(0);
}

var USAGE = [
  'Usage: ' + process.argv[1] + ' [-hv|print-template|pages-config.json]',
  'Where:',
  '  -h, --help, help        show this help',
  '  -v, --version, version  show version info',
  '  print-template          print an example pages-config.json',
  '  pages-config.json       path to a valid pages-config.json file'
].join('\n');

var showHelp = (option === '-h' || option === '--help' || option === 'help');
var showVersion = (option === '-v' || option === '--version' ||
  option === 'version');

if (showHelp) { console.log(USAGE); }
if (showVersion) { console.log(pagesServer.versionString()); }
if (showHelp || showVersion) { process.exit(0); }

if (process.argv.length !== 3) {
  console.error('Invalid arguments:', process.argv.slice(2).join(' '));
  console.error(USAGE);
  process.exit(1);
}

fs.readFile(option, 'utf8', function(err, configData) {
  if (err) {
    console.error('Error opening ' + option + ': ' + err);
    console.error(USAGE);
    process.exit(1);
  }
  pagesServer.launchServer(JSON.parse(configData));
});