-
Notifications
You must be signed in to change notification settings - Fork 1
/
install-dependencies.js
30 lines (22 loc) · 1.06 KB
/
install-dependencies.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/*
install-dependencies.js
We have some hardware-dependent npm modules for device access on the Raspberry Pi that
do not compile on all platforms. This script is called during the 'npm install' process
and will only install the package.json 'linuxDependencies' modules on the target platform.
Yes, I'm laying on a bit of anti-pattern on here since failures are not bubbled up.
*/
'use strict';
const path = require('path');
const deviceUtils = require(path.join(__dirname, './devices/device-utils.js'));
const packageJson = require(path.join(__dirname, 'package.json'));
const execSync = require('child_process').execSync;
const colors = require('colors/safe');
if(deviceUtils.isRaspberryPi() && packageJson.linuxDependencies) {
for(let pkg of Object.keys(packageJson.linuxDependencies)) {
let cmd = `npm install ${pkg}@${packageJson.linuxDependencies[pkg]}`;
console.log(colors.cyan.bold(`exec('${cmd}')`));
let result = execSync(cmd, { encoding : 'utf8' });
console.log(colors.black.bgYellow(cmd));
console.log(result);
}
}