From 19fcf896df1766f11fdea955e9508866a6770b02 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Thu, 13 Feb 2020 13:21:06 -0600 Subject: [PATCH] Opt-in to auto-delete old releases --- public/electron.js | 23 ++++++++++++++++++----- src/renderer/ipc/ReleaseIPC.js | 6 ++++-- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/public/electron.js b/public/electron.js index e67b3df..c65de22 100644 --- a/public/electron.js +++ b/public/electron.js @@ -50,6 +50,7 @@ let isShutdown = false; let isQuiting = false; let isInstalling = false; let launchHidden = false; +let cleanupReleases = false; let mainWindow; let mainWindowTray; let trayContextMenu; @@ -153,6 +154,9 @@ const createWindow = () => { }, checked: !launchHidden, }, + { + type: 'separator' + }, { label: 'Auto-start', type: 'checkbox', click(item) { if (item.checked) { @@ -162,9 +166,6 @@ const createWindow = () => { } } }, - { - type: 'separator' - }, { label: 'Launch Hidden', type: 'checkbox', click(item) { launchHidden = !!item.checked; @@ -175,6 +176,16 @@ const createWindow = () => { { type: 'separator' }, + { + label: 'Delete Old Releases', type: 'checkbox', click(item) { + cleanupReleases = !!item.checked; + saveUiSettings(); + }, + checked: cleanupReleases, + }, + { + type: 'separator' + }, { label: 'Exit and Unmount', click() { closeApplication(); @@ -208,7 +219,8 @@ const loadUiSettings = () => { try { if (fs.statSync(settingFile).isFile()) { const settings = JSON.parse(fs.readFileSync(settingFile, 'utf8')); - launchHidden = settings.launch_hidden; + launchHidden = !!settings.launch_hidden; + cleanupReleases = !!settings.cleanup_releases; PlatformIPC.setPlatformOverride(settings.platform_override); } } catch (e) { @@ -219,6 +231,7 @@ const saveUiSettings = () => { const settingFile = path.join(helpers.getDataDirectory(), 'ui.json'); try { fs.writeFileSync(settingFile, JSON.stringify({ + cleanup_releases: cleanupReleases, launch_hidden: launchHidden, platform_override: PlatformIPC.getPlatformOverride(), }), 'utf-8'); @@ -304,7 +317,7 @@ DownloadIPC.addListeners(ipcMain, standardIPCReply); FilesystemIPC.addListeners(ipcMain, getMainWindow, dialog); MountsIPC.addListeners(ipcMain, setTrayImage, standardIPCReply); PlatformIPC.addListeners(ipcMain, detectScript, saveUiSettings); -ReleaseIPC.addListeners(ipcMain, standardIPCReply); +ReleaseIPC.addListeners(ipcMain, () => cleanupReleases, standardIPCReply); StateIPC.addListeners(ipcMain); SystemIPC.addListeners(ipcMain, closeApplication); UpgradeIPC.addListeners(ipcMain, setIsInstalling, MountsIPC.unmountAllDrives, standardIPCReply); diff --git a/src/renderer/ipc/ReleaseIPC.js b/src/renderer/ipc/ReleaseIPC.js index 93a6b09..f76fcf8 100644 --- a/src/renderer/ipc/ReleaseIPC.js +++ b/src/renderer/ipc/ReleaseIPC.js @@ -5,7 +5,7 @@ const os = require('os'); const path = require('path'); const unzip = require('unzipper'); -const addListeners = (ipcMain, standardIPCReply) => { +const addListeners = (ipcMain, getCleanupReleases, standardIPCReply) => { ipcMain.on(Constants.IPC_Check_Installed, (event, data) => { const destination = path.join(helpers.getDataDirectory(), data.Version); helpers @@ -30,7 +30,9 @@ const addListeners = (ipcMain, standardIPCReply) => { }); ipcMain.on(Constants.IPC_Cleanup_Releases + '_sync', (event, data) => { - helpers.cleanupOldReleases(data.version_list); + if (getCleanupReleases()) { + helpers.cleanupOldReleases(data.version_list); + } event.returnValue = true; });