TradeMe/tractor

View on GitHub
packages/cli/bin/tractor

Summary

Maintainability
Test Coverage
#!/usr/bin/env node
'use strict';

// Dependencies:
const { Tractor } = require('@tractor/tractor');
const cli = require('commander');
const { version } = require('../package.json');

// Actions:
const { init, patch, start, upgrade } = require('../dist');

cli
.version(version)
.option('-c, --config [value]', 'Path to configuration file from CWD (defaults to ./tractor.conf.js)');

cli
.command('init')
.description('initialise tractor in a project')
.action(() => run(cli.config, init));

cli
.command('patch')
.description('Patch protractor/selenium to resolve issues')
.action(patch);

cli
.command('start', { isDefault: true })
.description('Start the tractor server')
.action(() => run(cli.config, start));

cli
.command('upgrade')
.description('Upgrade tractor plugin files')
.action(() => run(cli.config, upgrade));

cli.parse(process.argv);

function run (configPath, command) {
    const tractor = new Tractor(process.cwd(), configPath);
    return tractor.call(command);
}