flexmonster-cli
Version:
CLI for Flexmonster Pivot Table & Charts installation
99 lines (93 loc) • 2.59 kB
JavaScript
import chalk from 'chalk';
import fs from 'fs';
import { join } from 'path';
/*************************
* Coloring and output
*************************/
export function listChoices(input) {
return input.map(function (item, i) {
return {
name: item.description ? chalk.bold(item.name) + chalk.whiteBright(' - ' + item.description) : chalk.bold(item.name),
value: item.value ? item.value : item.name
};
});
};
/*************************
* Copy all content from folder to folder
*************************/
export function copyFolderSync(from, to) {
if (!fs.existsSync(to)) {
fs.mkdirSync(to);
}
fs.readdirSync(from).forEach(element => {
if (fs.lstatSync(join(from, element)).isFile()) {
fs.copyFileSync(join(from, element), join(to, element));
} else {
copyFolderSync(join(from, element), join(to, element));
}
});
}
/*************************
* Archive URLs manipulations
*************************/
export function getArchiveNameFromURL(url) {
const parts = url.split("/");
const archiveName = parts[parts.length - 1];
return archiveName;
}
function getArchiveType(url) {
const archiveName = getArchiveNameFromURL(url);
let archiveParts = archiveName.split(".");
archiveParts.shift();
const extension = "." + archiveParts.join(".");
return extension;
}
export function isArchiveZip(url) {
return getArchiveType(url).endsWith('.zip');
}
/*************************
* OS checking
*************************/
export function isWindows() {
return process.platform === 'win32';
}
export function isMacOS() {
return process.platform === 'darwin';
}
export function isLinux() {
return process.platform === 'linux';
}
export function getOSString() {
const platform = process.platform;
const arch = process.arch;
let osStr = "";
if (isWindows(platform)) {
osStr += "Windows";
} else if (isLinux(platform)) {
osStr += "Linux";
} else if (isMacOS(platform)) {
osStr += "macOS";
} else {
osStr += "Unknown";
}
switch (arch) {
case "x32":
osStr += " (x86)";
break;
case "ia32":
osStr += " (x86)";
break;
case "x64":
osStr += " (x64)";
break;
case "arm":
osStr += " (ARM)";
break;
case "arm64":
osStr += " (ARM64)";
break;
default:
osStr += " (unknown)";
}
return osStr;
}