[Application configuration support] [Fix component unmount leak]
This commit is contained in:
94
electron.js
94
electron.js
@@ -275,7 +275,8 @@ ipcMain.on('extract_release', (event, data) => {
|
||||
helpers.mkDirByPathSync(destination);
|
||||
|
||||
const stream = fs.createReadStream(data.Source);
|
||||
stream.pipe(unzip.Extract({ path: destination }))
|
||||
stream
|
||||
.pipe(unzip.Extract({ path: destination }))
|
||||
.on('error', (e) => {
|
||||
try {
|
||||
helpers.removeDirectoryRecursively(destination);
|
||||
@@ -301,6 +302,59 @@ ipcMain.on('extract_release', (event, data) => {
|
||||
});
|
||||
});
|
||||
|
||||
ipcMain.on('get_config', (event, data) => {
|
||||
const dataDirectory = helpers.resolvePath(data.Directory);
|
||||
helpers
|
||||
.getConfig(dataDirectory, data.Version, data.StorageType)
|
||||
.then((data) => {
|
||||
if (data.Code === 0) {
|
||||
event.sender.send('get_config_reply', {
|
||||
data: {
|
||||
Success: true,
|
||||
Config: data.Data,
|
||||
}
|
||||
});
|
||||
} else {
|
||||
event.sender.send('get_config_reply', {
|
||||
data: {
|
||||
Error: data.Code,
|
||||
Success: false,
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch((e)=> {
|
||||
event.sender.send('get_config_reply', {
|
||||
data: {
|
||||
Error: e,
|
||||
Success: false,
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
ipcMain.on('get_config_template', (event, data) => {
|
||||
const dataDirectory = helpers.resolvePath(data.Directory);
|
||||
helpers
|
||||
.getConfigTemplate(dataDirectory, data.Version, data.StorageType)
|
||||
.then((data) => {
|
||||
event.sender.send('get_config_template_reply', {
|
||||
data: {
|
||||
Success: true,
|
||||
Template: data,
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch((e)=> {
|
||||
event.sender.send('get_config_template_reply', {
|
||||
data: {
|
||||
Error: e,
|
||||
Success: false,
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
ipcMain.on('get_platform', (event) => {
|
||||
event.sender.send('get_platform_reply', {
|
||||
data: os.platform()
|
||||
@@ -408,14 +462,34 @@ ipcMain.on('save_state', (event, data) => {
|
||||
fs.writeFileSync(configFile, JSON.stringify(data.State), 'utf8');
|
||||
});
|
||||
|
||||
ipcMain.on('unmount_drive', (event, data) => {
|
||||
helpers.stopProcessByPID(data.PID)
|
||||
.then((pid)=> {
|
||||
if (mountedPIDs.indexOf(pid) === -1) {
|
||||
event.sender.send('unmount_drive_reply');
|
||||
ipcMain.on('set_config_values', (event, data) => {
|
||||
const dataDirectory = helpers.resolvePath(data.Directory);
|
||||
const setConfigValue = (i) => {
|
||||
if (i < data.Items.length) {
|
||||
helpers
|
||||
.setConfigValue(data.Items[i].Name, data.Items[i].Value, dataDirectory, data.StorageType, data.Version)
|
||||
.then(() => {
|
||||
setConfigValue(++i);
|
||||
})
|
||||
.catch(() => {
|
||||
setConfigValue(++i);
|
||||
});
|
||||
} else {
|
||||
event.sender.send('set_config_values_reply', {});
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e);
|
||||
});
|
||||
};
|
||||
setConfigValue(0);
|
||||
});
|
||||
|
||||
ipcMain.on('unmount_drive', (event, data) => {
|
||||
helpers
|
||||
.stopProcessByPID(data.PID)
|
||||
.then((pid)=> {
|
||||
if (mountedPIDs.indexOf(pid) === -1) {
|
||||
event.sender.send('unmount_drive_reply');
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user