appcenter-cli
Version:
Command line tool for Visual Studio App Center
57 lines (56 loc) • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCordovaOrPhonegapCLI = exports.isValidPlatform = exports.isValidOS = exports.getCordovaProjectAppVersion = void 0;
const which = require("which");
const xml2js = require("xml2js");
const fs = require("fs");
const path = require("path");
function getCordovaProjectAppVersion(projectRoot) {
return new Promise((resolve, reject) => {
let configString;
try {
projectRoot = projectRoot || process.cwd();
configString = fs.readFileSync(path.join(projectRoot, "config.xml"), { encoding: "utf8" });
}
catch (error) {
return reject(new Error(`Unable to find or read "config.xml" in the CWD. The "release-cordova" command must be executed in a Cordova project folder.`));
}
xml2js.parseString(configString, (err, parsedConfig) => {
if (err || !parsedConfig || !parsedConfig.widget) {
reject(new Error(`Unable to parse "config.xml" in the CWD. Ensure that the contents of "config.xml" is valid.`));
}
const config = parsedConfig.widget;
resolve(config["$"].version);
});
});
}
exports.getCordovaProjectAppVersion = getCordovaProjectAppVersion;
function isValidOS(os) {
switch (os.toLowerCase()) {
case "android":
case "ios":
return true;
default:
return false;
}
}
exports.isValidOS = isValidOS;
function isValidPlatform(platform) {
return platform.toLowerCase() === "cordova";
}
exports.isValidPlatform = isValidPlatform;
// Check whether the Cordova or PhoneGap CLIs are
// installed, and if not, fail early
function getCordovaOrPhonegapCLI() {
let cordovaCLI = "cordova";
try {
which.sync(cordovaCLI);
return cordovaCLI;
}
catch (e) {
cordovaCLI = "phonegap";
which.sync(cordovaCLI);
return cordovaCLI;
}
}
exports.getCordovaOrPhonegapCLI = getCordovaOrPhonegapCLI;