old_contents: 'use strict';
  
  var init = require('./init'),
      Path = require('path'),
      program = require('commander');
  
  module.exports = function app() {
      program.on('--help', function() {
          console.log('Usage:\n');
          console.log('$ site.js --watch build\n');
          console.log('$ site.js --port 3210 serve\n');
          console.log('');
      });
  
  
      program.option('-t, --template <template>', 'specify a global template [index.swig]', String);
      program.option('-p, --template-path <path>', 'template path [./template]', String);
      program.option('-o, --output <name>', 'name of the output file [index.js]', String);
  
      program
          .command('init')
          .description('initializing website')
          .action(function(source, target) {
              var config = {
                  source: source,
                  target: target,
                  output: program.output || 'index.js',
                  templatePath: Path.resolve(program.templatePath || './template'),
                  template: program.template || '/index.swig'
              };
  
              init(config, process.exit);
          });
  
      program.parse(process.argv);
  };
  
new_contents: 'use strict';
  
  var init = require('./init'),
      Path = require('path'),
      program = require('commander');
  
  module.exports = function app() {
  
      program
          .command('init [source] [target]')
          .description('Create new static site generator')
          .action(function(source, target) {
  
  
              var config = {
                  source: source || 'content',
                  target: target || 'public',
                  output: program.output || 'index.js',
                  templatePath: Path.resolve(program.templatePath || './template'),
                  template: program.template || '/index.swig'
              };
  
              init(config, process.exit);
          });
  
      program
          .version('0.0.1')
          .option('-t, --template <template>', 'specify a global template [index.swig]', String)
          .option('-p, --template-path <path>', 'template path [./template]', String)
          .option('-o, --output <name>', 'name of the output file [index.js]', String)
          .parse(process.argv);
  
      if (program.args.length === 0) program.help();
  };
  
subject: improve cli