UNPKG

stratumn-cli

Version:
56 lines (45 loc) 1.33 kB
import fs from 'fs'; import path from 'path'; import commander from 'commander'; import readPackageSync from '../utils/readPackageSync'; import post from '../utils/post'; import poll from '../utils/poll'; commander .usage('<app-name> [script-path]') .version(readPackageSync('version')) .option('-p, --plan <name>', 'change the plan') .option('-n, --agent-count <int>', 'change the number of agents') .parse(process.argv); if (commander.args.length < 1 || commander.args.length > 2) { commander.help(); } function handleError(err) { process.stderr.write(err.message + '\n', () => process.exit(1)); } const payload = {}; if (commander.plan) { payload.plan = commander.plan; } if (commander.agentCount) { payload.agentCount = commander.agentCount; } if (commander.args.length === 2) { const scriptPath = path.join(process.cwd(), commander.args[1]); try { payload.script = fs.readFileSync(scriptPath, 'utf8'); } catch (err) { handleError(err); } } post('/applications/' + commander.args[0] + '/deploy', payload, true) .then(app => poll(app.name)) .then(() => { process.stdout.write('\n', process.exit); }) .catch(err => { if (err.code === 'ENOENT') { process.stdout.write('You must login first\n', () => process.exit(1)); return; } handleError(err); });