From f51fc7f9645b24c58eb2c8e9755e71f99b3c1e01 Mon Sep 17 00:00:00 2001 From: Thumster <50561219+Thumster@users.noreply.github.com> Date: Thu, 24 Aug 2023 17:26:38 +0800 Subject: [PATCH] create default export dir if not exist previously (#24) --- public/electron/scanManager.js | 4 +++- public/electron/userDataManager.js | 19 +++++++++++++------ src/MainWindow/HomePage/index.jsx | 5 +++++ 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/public/electron/scanManager.js b/public/electron/scanManager.js index 84b9b01b..48154f0d 100644 --- a/public/electron/scanManager.js +++ b/public/electron/scanManager.js @@ -21,7 +21,7 @@ const { getDefaultEdgeDataDir, } = require("./constants"); const { env, report } = require("process"); -const { readUserDataFromFile } = require("./userDataManager"); +const { readUserDataFromFile, createExportDir } = require("./userDataManager"); const scanHistory = {}; let currentChildProcess; @@ -98,6 +98,8 @@ const startScan = async (scanDetails, scanEvent) => { scanDetails.email = userData.email; scanDetails.name = userData.name; scanDetails.exportDir = userData.exportDir; + const success = createExportDir(userData.exportDir); + if (!success) return { failedToCreateExportDir: true } } if (!getDefaultChromeDataDir() && os.platform() ==='darwin') { diff --git a/public/electron/userDataManager.js b/public/electron/userDataManager.js index 1b396448..975acadf 100644 --- a/public/electron/userDataManager.js +++ b/public/electron/userDataManager.js @@ -17,10 +17,16 @@ const writeUserDetailsToFile = (userDetails) => { fs.writeFileSync(userDataFilePath, JSON.stringify(data)); } -const createExportDir = () => { - const exportDir = readUserDataFromFile().exportDir; - if (!fs.existsSync(exportDir)) { - fs.mkdirSync(exportDir, { recursive: true }); +const createExportDir = (path) => { + try { + if (!fs.existsSync(path)) { + fs.mkdirSync(path, { recursive: true }); + } + + return true; + } catch (error) { + console.error(error); + return false; } } @@ -92,7 +98,7 @@ const setData = async (userDataEvent) => { }) const userDetailsReceived = await userData; writeUserDetailsToFile(userDetailsReceived); - createExportDir(); + createExportDir(data.exportDir); } else { userDataEvent.emit("userDataDoesExist"); } @@ -101,5 +107,6 @@ const setData = async (userDataEvent) => { module.exports = { init, setData, - readUserDataFromFile + readUserDataFromFile, + createExportDir, } \ No newline at end of file diff --git a/src/MainWindow/HomePage/index.jsx b/src/MainWindow/HomePage/index.jsx index bf28fc62..41ecf94f 100644 --- a/src/MainWindow/HomePage/index.jsx +++ b/src/MainWindow/HomePage/index.jsx @@ -102,6 +102,11 @@ const HomePage = ({ isProxy, appVersion, setCompletedScanId }) => { return; } + if (response.failedToCreateExportDir) { + navigate("/", { state: 'Unable to create download directory' }); + return; + } + if (response.success) { setCompletedScanId(response.scanId); if (scanDetails.scanType === 'Custom flow') {