mjackson/firework

View on GitHub
bin/firework

Summary

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

var Firework = require('../modules');

var argv = require('optimist')
  .usage([
    'Manage a firework instance',
    'Usage: firework create-worker.js [ -w numWorkers ]',
    '',
    '  The create-worker.js module should export a single function',
    '  that returns a new Firework.Worker object when invoked. This',
    '  function is used to create new workers as needed.'
  ].join('\n'))
  .demand(1)
  .options('w', { describe: 'The number of workers to run', default: 1 })
  .argv;

var workerFile = require('path').join(process.cwd(), argv._[0]);
var createWorker = require(workerFile);
var runner = new Firework.Runner(createWorker);

runner.setNumberOfWorkers(argv.w);

process.once('SIGTERM', function () {
  console.log('SIGTERM received, gracefully stopping all workers');

  runner.stopAllWorkers(function () {
    process.exit();
  });
});