UNPKG

flexmonster-cli

Version:

CLI for Flexmonster Pivot Table & Charts installation

99 lines (93 loc) 2.59 kB
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; }