69 lines
2.6 KiB
JavaScript
69 lines
2.6 KiB
JavaScript
const { execSync } = require("child_process");
|
|
const os = require("os");
|
|
|
|
// Minimum versions required
|
|
const npmNeededVersion = '5'
|
|
const nodeNeededVersion = '12'
|
|
const gitNeededVersion = '2'
|
|
|
|
function systemCheck () {
|
|
try {
|
|
|
|
// Gather Installed Versions of Node, NPM and Git
|
|
const npmVersionRaw = execSync( "npm -v",{ encoding: 'utf8', timeout: 30000 })
|
|
const nodeVersionRaw = execSync( "node -v",{ encoding: 'utf8',timeout: 30000 })
|
|
const gitVersionRaw = execSync( "git --version",{ encoding: 'utf8',timeout: 30000 })
|
|
const npmVersion = npmVersionRaw.trim().split('.')
|
|
const nodeVersion = nodeVersionRaw.trim().substring(1).split('.')
|
|
const gitVersion = gitVersionRaw.trim().split(' ')[2].split('.')
|
|
|
|
// Make sure update version of npm is installed
|
|
if ( npmVersion[0] < npmNeededVersion ) {
|
|
console.log('');
|
|
console.log("ERROR: the version of npm you have installed is out of date. Please update your installation of npm and try again.");
|
|
console.log('');
|
|
process.exit();
|
|
}
|
|
|
|
// Make sure update version of node is installed
|
|
if ( nodeVersion[0] < nodeNeededVersion ) {
|
|
console.log('');
|
|
console.log("ERROR: the version of node you have installed is out of date. Please update your installation of node and try again.");
|
|
console.log('');
|
|
process.exit();
|
|
}
|
|
|
|
// Make sure updated version of git is installed
|
|
if ( gitVersion[0] < gitNeededVersion ) {
|
|
console.log('');
|
|
console.log("ERROR: the version of git you have installed is out of date. Please update your installation of git and try again.");
|
|
console.log('');
|
|
process.exit();
|
|
}
|
|
|
|
// Check windows system
|
|
if (os.platform() == "win32") {
|
|
|
|
// Verify C:\Windows\System32 is on the windows PATH
|
|
const path = execSync( "echo %PATH%",{ encoding: 'utf8',timeout: 30000 })
|
|
let check = path.includes('System32')
|
|
if ( check === false ) {
|
|
console.log('');
|
|
console.log("ERROR: it appears C:\\Windows\\System32 is missing from your PATH. Please add to your path and try again.");
|
|
console.log('');
|
|
process.exit();
|
|
}
|
|
|
|
}
|
|
|
|
} catch (error) {
|
|
console.log('');
|
|
console.log("There was an error with your system: ");
|
|
console.log('');
|
|
console.log( error );
|
|
return;
|
|
}
|
|
|
|
};
|
|
|
|
module.exports = systemCheck |