From ec2ce64bf69ddaba0f3fb448f9f63503534de11e Mon Sep 17 00:00:00 2001 From: Vlad Date: Thu, 11 Jun 2020 19:01:07 +0300 Subject: [PATCH 1/5] feat: check if folder is empty --- lib/cli.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/cli.js b/lib/cli.js index 3195121..ca74c9e 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -23,6 +23,20 @@ module.exports = async (argvs) => { const timer = elapsed.start(); const version = argv["release"] || "latest"; const targetDir = path.resolve(argv["_"][0] || "./"); + const folderFiles = await fs.readdir(targetDir); + if (folderFiles.length !== -1) { + const { override } = await prompts({ + type: "confirm", + name: "override", + message: `${targetDir} is not empty folder, proceed?`, + initial: true, + }); + + if (!override) { + console.log(chalk.red("Aborted")); + return; + } + } spinner = ora( `Downloading ${packageName} version '${version}' to ${targetDir}` ).start(); From f1ffb98572e3ac4c75a3cb0e142ce116a92b3a5f Mon Sep 17 00:00:00 2001 From: Vlad Date: Tue, 16 Jun 2020 09:30:17 +0300 Subject: [PATCH 2/5] fix: typo --- lib/cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cli.js b/lib/cli.js index ca74c9e..34e1b13 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -28,7 +28,7 @@ module.exports = async (argvs) => { const { override } = await prompts({ type: "confirm", name: "override", - message: `${targetDir} is not empty folder, proceed?`, + message: `${targetDir} is not an empty folder, proceed?`, initial: true, }); From 63b404c788713bb5458e53eba3a2a72037bd309a Mon Sep 17 00:00:00 2001 From: Vlad Date: Thu, 18 Jun 2020 19:54:41 +0300 Subject: [PATCH 3/5] feat: check folder override --- lib/cli.js | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/lib/cli.js b/lib/cli.js index 34e1b13..8fc4a1c 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -23,19 +23,10 @@ module.exports = async (argvs) => { const timer = elapsed.start(); const version = argv["release"] || "latest"; const targetDir = path.resolve(argv["_"][0] || "./"); - const folderFiles = await fs.readdir(targetDir); - if (folderFiles.length !== -1) { - const { override } = await prompts({ - type: "confirm", - name: "override", - message: `${targetDir} is not an empty folder, proceed?`, - initial: true, - }); - - if (!override) { - console.log(chalk.red("Aborted")); - return; - } + const override = checkFolder(targetDir, argv); + if (!override) { + console.log(chalk.red("Aborted")); + return; } spinner = ora( `Downloading ${packageName} version '${version}' to ${targetDir}` @@ -69,6 +60,23 @@ module.exports = async (argvs) => { } }; +const checkFolder = async (targetDir, argv) => { + const folderExists = await fs.exists(targetDir); + if (!folderExists) { + return true; + } + const folderFiles = await fs.readdir(targetDir); + if (argv["yes"] !== true && folderFiles.length !== -1) { + const { override } = await prompts({ + type: "confirm", + name: "override", + message: `${targetDir} is not an empty folder, proceed?`, + initial: true, + }); + return override; + } +}; + const onLoad = async (targetDir, version, argv) => { // see https://github.com/mrmlnc/fast-glob#how-to-write-patterns-on-windows const npmIgnoreFiles = await glob( From 188649a8d856d43a40116830c7c322f3034952d6 Mon Sep 17 00:00:00 2001 From: Vlad Date: Fri, 19 Jun 2020 10:35:34 +0300 Subject: [PATCH 4/5] fix: add await to checkFolder func call --- lib/cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cli.js b/lib/cli.js index 8fc4a1c..bfb2ae9 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -23,7 +23,7 @@ module.exports = async (argvs) => { const timer = elapsed.start(); const version = argv["release"] || "latest"; const targetDir = path.resolve(argv["_"][0] || "./"); - const override = checkFolder(targetDir, argv); + const override = await checkFolder(targetDir, argv); if (!override) { console.log(chalk.red("Aborted")); return; From c6d4db61da6b2dde2f8afdbe8578fbc0b1453e2c Mon Sep 17 00:00:00 2001 From: Vlad Date: Fri, 19 Jun 2020 10:39:48 +0300 Subject: [PATCH 5/5] fix(checkFolder): skip check --- lib/cli.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/cli.js b/lib/cli.js index bfb2ae9..ad080be 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -65,8 +65,11 @@ const checkFolder = async (targetDir, argv) => { if (!folderExists) { return true; } + if (argv["yes"] === true) { + return true; + } const folderFiles = await fs.readdir(targetDir); - if (argv["yes"] !== true && folderFiles.length !== -1) { + if (folderFiles.length !== -1) { const { override } = await prompts({ type: "confirm", name: "override",