appcenter-cli
Version:
Command line tool for Visual Studio App Center
63 lines (51 loc) • 1.83 kB
JavaScript
var util = require('util');
// Verify user has minimum required version of node installed
var minMajorVersion = 6;
var minMinorVersion = 3;
function getCurrentVersion() {
var matches = process.version.match(/v?(\d+)\.(\d+)\.(\d+)/);
return [+matches[1], +matches[2]];
}
function ensureNodeVersion() {
var currentVersion = getCurrentVersion();
var major = currentVersion[0];
var minor = currentVersion[1];
if (major > minMajorVersion) {
return true;
}
if (major == minMajorVersion && minor >= minMinorVersion) {
return true;
}
console.log(`appcenter command requires at least node version ${minMajorVersion}.${minMinorVersion}.0.`);
console.log(`You are currently running version ${process.version}.`);
console.log(`Please upgrade your version of node.js to at least ${minMajorVersion}.${minMinorVersion}.0`);
return false;
}
function runCli() {
var path = require('path');
var commandLine = require('../dist/util/commandline');
var runner = commandLine.runner(path.join(__dirname, '..', 'dist', 'commands'));
var args = process.argv.slice(2);
if (args.indexOf('--quiet') === -1) {
const updateNotifier = require('update-notifier');
const pkg = require(path.join(__dirname, '..', 'package.json'));
const notifier = updateNotifier({pkg});
notifier.notify();
}
runner(args)
.then(function (result) {
if (commandLine.failed(result)) {
const chalk = require("chalk");
console.log(`${chalk.bold.red("Error:")} ${result.errorMessage}`);
process.exit(result.errorCode);
}
});
}
if (ensureNodeVersion()) {
var commandLine = require('../dist/util/commandline');
commandLine.executeAutoComplete(); // if it is an autocomplete run, then it exits here
runCli();
} else {
process.exit(1);
}