57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
const Constants = require('../../constants');
|
|
const fs = require('fs');
|
|
const helpers = require('../../helpers');
|
|
const os = require('os');
|
|
const path = require('path');
|
|
|
|
const addListeners = (ipcMain, { detectScript }) => {
|
|
ipcMain.on(Constants.IPC_Get_Platform, (event) => {
|
|
const sendResponse = (appPlatform, platform) => {
|
|
event.sender.send(Constants.IPC_Get_Platform_Reply, {
|
|
AppPlatform: appPlatform,
|
|
Platform: platform,
|
|
});
|
|
};
|
|
|
|
const platform = os.platform();
|
|
if (platform === 'linux') {
|
|
const scriptFile = path.join(os.tmpdir(), 'repertory_detect_linux.sh');
|
|
fs.writeFileSync(scriptFile, detectScript);
|
|
|
|
helpers
|
|
.executeScript(scriptFile)
|
|
.then((data) => {
|
|
let appPlatform = data.replace(/(\r\n|\n|\r)/gm, '');
|
|
if (appPlatform === 'unknown') {
|
|
helpers.downloadFile(Constants.LINUX_DETECT_SCRIPT_URL, scriptFile, null, (err) => {
|
|
if (err) {
|
|
sendResponse(appPlatform, platform);
|
|
} else {
|
|
helpers
|
|
.executeScript(scriptFile)
|
|
.then((data) => {
|
|
appPlatform = data.replace(/(\r\n|\n|\r)/gm, '');
|
|
sendResponse(appPlatform, platform);
|
|
})
|
|
.catch(() => {
|
|
sendResponse(appPlatform, platform);
|
|
});
|
|
}
|
|
});
|
|
} else {
|
|
sendResponse(appPlatform, platform);
|
|
}
|
|
})
|
|
.catch(() => {
|
|
sendResponse(platform, platform);
|
|
});
|
|
} else {
|
|
sendResponse(platform, platform);
|
|
}
|
|
});
|
|
};
|
|
|
|
module.exports = {
|
|
addListeners,
|
|
};
|