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, };