mirror of
https://github.com/wavetermdev/xterm.js.git
synced 2026-04-22 15:25:47 -07:00
57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
/**
|
|
* Copyright (c) 2019 The xterm.js authors. All rights reserved.
|
|
* @license MIT
|
|
*
|
|
* Script to initialize addon packages under "addons/" with outer deps.
|
|
*/
|
|
|
|
const path = require('path');
|
|
const cp = require('child_process');
|
|
const fs = require('fs');
|
|
|
|
const PACKAGE_ROOT = path.join(__dirname, '..');
|
|
|
|
// install addon deps
|
|
const addonsPath = path.join(PACKAGE_ROOT, 'addons');
|
|
if (fs.existsSync(addonsPath)) {
|
|
console.log('pulling addon dependencies...');
|
|
|
|
// whether to use yarn or npm
|
|
let hasYarn = false;
|
|
try {
|
|
cp.execSync('yarn --version').toString();
|
|
hasYarn = true;
|
|
} catch(e) {}
|
|
|
|
// walk all addon folders
|
|
fs.readdir(addonsPath, (err, files) => {
|
|
for (const folder of files) {
|
|
const addonPath = path.join(addonsPath, folder);
|
|
|
|
// install only if there are dependencies listed
|
|
let packageJson;
|
|
try {
|
|
packageJson = require(path.join(addonPath, 'package.json'));
|
|
} catch (e) {
|
|
// swallow as changing branches can leave folders around
|
|
}
|
|
if (packageJson
|
|
&& (
|
|
(packageJson.devDependencies && Object.keys(packageJson.devDependencies).length)
|
|
|| (packageJson.dependencies && Object.keys(packageJson.dependencies).length)
|
|
)
|
|
)
|
|
{
|
|
console.log('Preparing', folder);
|
|
if (hasYarn) {
|
|
cp.execSync('yarn', {cwd: addonPath});
|
|
} else {
|
|
cp.execSync('npm install', {cwd: addonPath});
|
|
}
|
|
} else {
|
|
console.log('Skipped', folder);
|
|
}
|
|
}
|
|
});
|
|
}
|