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.

101 lines
2.0 KiB

#!/usr/bin/env node
// Native
const { resolve } = require('path');
// Packages
const updateNotifier = require('update-notifier');
const chalk = require('chalk');
// Ours
const pkg = require('../lib/pkg');
8 years ago
if (!process.pkg) {
const notifier = updateNotifier({ pkg });
const update = notifier.update;
8 years ago
if (update) {
let message = `Update available! ${chalk.red(update.current)}${chalk.green(update.latest)} \n`;
message += `Run ${chalk.magenta('npm i -g now')} to update!\n`;
message += `${chalk.magenta('Changelog:')} https://github.com/zeit/now-cli/releases/tag/${update.latest}`;
notifier.notify({ message });
}
8 years ago
}
8 years ago
// This command will be run if no other sub command is specified
const defaultCommand = 'deploy';
const commands = new Set([
defaultCommand,
'help',
'list',
'ls',
'rm',
'remove',
'alias',
'aliases',
'ln',
'domain',
'domains',
'dns',
'cert',
'certs',
'secret',
'secrets',
'cc',
'billing',
'upgrade',
'downgrade',
'open'
]);
const aliases = new Map([
['ls', 'list'],
['rm', 'remove'],
['ln', 'alias'],
['aliases', 'alias'],
['domain', 'domains'],
['cert', 'certs'],
['secret', 'secrets'],
['cc', 'billing'],
['downgrade', 'upgrade']
]);
let cmd = defaultCommand;
const args = process.argv.slice(2);
const index = args.findIndex(a => commands.has(a));
9 years ago
if (index > -1) {
cmd = args[index];
args.splice(index, 1);
if (cmd === 'help') {
if (index < args.length && commands.has(args[index])) {
cmd = args[index];
args.splice(index, 1);
} else {
cmd = defaultCommand;
}
args.unshift('--help');
}
9 years ago
cmd = aliases.get(cmd) || cmd;
9 years ago
}
// Don't throw a useless error message when running `now help help`
// rather show the general help and be useful
if (cmd === 'help') {
cmd = 'deploy';
}
const bin = resolve(__dirname, 'now-' + cmd + '.js');
// Prepare process.argv for subcommand
process.argv = process.argv.slice(0, 2).concat(args);
8 years ago
// Load sub command
// With custom parameter to make "pkg" happy
require(bin, 'may-exclude');