You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

76 lines
1.5 KiB

#!/usr/bin/env node
import minimist from 'minimist';
import { resolve } from 'path';
import { spawn } from 'cross-spawn';
import checkUpdate from '../lib/check-update';
const argv = minimist(process.argv.slice(2));
// options
const debug = argv.debug || argv.d;
// auto-update checking
const update = checkUpdate({ debug });
const exit = (code) => {
update.then(() => process.exit(code));
// don't wait for updates more than a second
// when the process really wants to exit
setTimeout(() => process.exit(code), 1000);
};
const defaultCommand = 'deploy';
const commands = new Set([
defaultCommand,
'list',
'ls',
'rm',
'remove',
'alias',
'aliases',
'ln',
'domain',
'domains',
'cert',
'certs',
'secret',
'secrets'
]);
const aliases = new Map([
['ls', 'list'],
['rm', 'remove'],
['ln', 'alias'],
['aliases', 'alias'],
['domain', 'domains'],
['cert', 'certs'],
['secret', 'secrets']
]);
let cmd = argv._[0];
let args = [];
if ('help' === cmd) {
cmd = argv._[1];
if (!commands.has(cmd)) cmd = defaultCommand;
args.push('--help');
}
if (commands.has(cmd)) {
cmd = aliases.get(cmd) || cmd;
args = args.concat(process.argv.slice(3));
} else {
cmd = defaultCommand;
args = args.concat(process.argv.slice(2));
}
let bin = resolve(__dirname, 'now-' + cmd);
if (process.pkg) {
args.unshift('--entrypoint', bin);
bin = process.execPath;
}
const proc = spawn(bin, args, { stdio: 'inherit', customFds: [0, 1, 2] });
proc.on('close', (code) => exit(code));
proc.on('error', () => exit(1));