112 lines
2.9 KiB
JavaScript
112 lines
2.9 KiB
JavaScript
const Constants = require('../../constants');
|
|
const fs = require('fs');
|
|
const helpers = require('../../helpers');
|
|
|
|
const addListeners = (ipcMain, {standardIPCReply}) => {
|
|
ipcMain.on(Constants.IPC_Check_Dependency_Installed, (event, data) => {
|
|
try {
|
|
const exists = fs.lstatSync(data.File).isFile();
|
|
standardIPCReply(event, Constants.IPC_Check_Dependency_Installed_Reply, {
|
|
data: {
|
|
Exists: exists,
|
|
},
|
|
});
|
|
} catch (e) {
|
|
standardIPCReply(event, Constants.IPC_Check_Dependency_Installed_Reply, {
|
|
data : {
|
|
Exists: false,
|
|
},
|
|
});
|
|
}
|
|
});
|
|
|
|
ipcMain.on(Constants.IPC_Check_Dependency_Installed + '_sync', (event, data) => {
|
|
try {
|
|
const ls = fs.lstatSync(data.File);
|
|
event.returnValue = {
|
|
data: {
|
|
Exists: ls.isFile() || ls.isSymbolicLink(),
|
|
},
|
|
};
|
|
} catch (e) {
|
|
event.returnValue = {
|
|
data: {
|
|
Exists: false
|
|
},
|
|
};
|
|
}
|
|
});
|
|
|
|
ipcMain.on(Constants.IPC_Install_Dependency, (event, data) => {
|
|
if (data.Source.toLowerCase().endsWith('.dmg')) {
|
|
helpers
|
|
.executeAsync('open', ['-a', 'Finder', '-W', data.Source])
|
|
.then(() => {
|
|
standardIPCReply(event, Constants.IPC_Install_Dependency_Reply, {
|
|
Source: data.Source,
|
|
URL: data.URL,
|
|
});
|
|
})
|
|
.catch(error=> {
|
|
standardIPCReply(event, Constants.IPC_Install_Dependency_Reply, {
|
|
Source: data.Source,
|
|
URL: data.URL,
|
|
}, error);
|
|
});
|
|
} else {
|
|
const execInstall = () => {
|
|
helpers
|
|
.executeAndWait(data.Source)
|
|
.then(() => {
|
|
standardIPCReply(event, Constants.IPC_Install_Dependency_Reply, {
|
|
Source: data.Source,
|
|
URL: data.URL,
|
|
});
|
|
})
|
|
.catch(error => {
|
|
standardIPCReply(event, Constants.IPC_Install_Dependency_Reply, {
|
|
Source: data.Source,
|
|
URL: data.URL,
|
|
}, error);
|
|
});
|
|
};
|
|
if (data.IsWinFSP) {
|
|
helpers
|
|
.performWindowsUninstall([
|
|
"WinFsp 2019.1",
|
|
"WinFsp 2019.2",
|
|
"WinFsp 2019.3",
|
|
"WinFsp 2019.3 B1",
|
|
"WinFsp 2019.3 B2",
|
|
"WinFsp 2019.3 B3",
|
|
"WinFsp 2019.3 B4",
|
|
"WinFsp 2019.3 B5"
|
|
])
|
|
.then(uninstalled => {
|
|
if (uninstalled) {
|
|
standardIPCReply(event, Constants.IPC_Install_Dependency_Reply, {
|
|
RebootRequired: true,
|
|
Source: data.Source,
|
|
URL: data.URL,
|
|
});
|
|
} else {
|
|
execInstall();
|
|
}
|
|
})
|
|
.catch(error => {
|
|
standardIPCReply(event, Constants.IPC_Install_Dependency_Reply, {
|
|
Source: data.Source,
|
|
URL: data.URL,
|
|
}, error);
|
|
});
|
|
} else {
|
|
execInstall();
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
module.exports = {
|
|
addListeners
|
|
};
|