Skip to content

Commit bb1c0f8

Browse files
authored
Merge pull request #22 from vltansky/check-folder
feat: check if folder is empty
2 parents a62c589 + c6d4db6 commit bb1c0f8

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

lib/cli.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ module.exports = async (argvs) => {
2323
const timer = elapsed.start();
2424
const version = (argv["release"] || "latest").toString();
2525
const targetDir = path.resolve(argv["_"][0] || "./");
26+
const override = await checkFolder(targetDir, argv);
27+
if (!override) {
28+
console.log(chalk.red("Aborted"));
29+
return;
30+
}
2631
spinner = ora(
2732
`Downloading ${packageName} version '${version}' to ${targetDir}`
2833
).start();
@@ -55,6 +60,26 @@ module.exports = async (argvs) => {
5560
}
5661
};
5762

63+
const checkFolder = async (targetDir, argv) => {
64+
const folderExists = await fs.exists(targetDir);
65+
if (!folderExists) {
66+
return true;
67+
}
68+
if (argv["yes"] === true) {
69+
return true;
70+
}
71+
const folderFiles = await fs.readdir(targetDir);
72+
if (folderFiles.length !== -1) {
73+
const { override } = await prompts({
74+
type: "confirm",
75+
name: "override",
76+
message: `${targetDir} is not an empty folder, proceed?`,
77+
initial: true,
78+
});
79+
return override;
80+
}
81+
};
82+
5883
const onLoad = async (targetDir, version, argv) => {
5984
// see https://github.com/mrmlnc/fast-glob#how-to-write-patterns-on-windows
6085
const npmIgnoreFiles = await glob(

0 commit comments

Comments
 (0)