[Application configuration support] [Fix component unmount leak]

This commit is contained in:
Scott E. Graves
2018-09-30 11:00:23 -05:00
parent f11ddb6d75
commit 9968116242
17 changed files with 880 additions and 164 deletions

View File

@@ -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);
});
});