summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.changeset/friendly-hotels-explode.md5
-rw-r--r--packages/create-astro/src/index.ts25
2 files changed, 7 insertions, 23 deletions
diff --git a/.changeset/friendly-hotels-explode.md b/.changeset/friendly-hotels-explode.md
new file mode 100644
index 000000000..85de23643
--- /dev/null
+++ b/.changeset/friendly-hotels-explode.md
@@ -0,0 +1,5 @@
+---
+'create-astro': minor
+---
+
+forced degit template extraction in case of non empty installation directory
diff --git a/packages/create-astro/src/index.ts b/packages/create-astro/src/index.ts
index 1b337a368..1427327ce 100644
--- a/packages/create-astro/src/index.ts
+++ b/packages/create-astro/src/index.ts
@@ -20,26 +20,6 @@ export function mkdirp(dir: string) {
}
}
-/**
- * Delete all files, subdirectories, and symlinks in a given
- * directory.
- *
- * @param dir the directory to empty
- * @returns a promise for emptying a given directory
- */
-export async function emptyDir(dir: string) {
- const items = await fs.promises.readdir(dir);
- return Promise.all(
- items.map(async (item) => {
- const itemPath = path.join(dir, item);
- const stat = await fs.promises.stat(itemPath);
- return stat.isDirectory()
- ? fs.promises.rm(itemPath, { recursive: true, force: true }) // To remove directories
- : fs.promises.unlink(itemPath); // Remove files and symlinks
- })
- );
-}
-
const { version } = JSON.parse(fs.readFileSync(new URL('../package.json', import.meta.url), 'utf-8'));
const POSTPROCESS_FILES = ['package.json', 'astro.config.mjs', 'CHANGELOG.md']; // some files need processing after copying.
@@ -57,14 +37,13 @@ export async function main() {
const response = await prompts({
type: 'confirm',
name: 'forceOverwrite',
- message: `Directory not empty. Delete ${cwd} to continue?`,
+ message: 'Directory not empty. Continue [force overwrite]?',
initial: false,
});
if (!response.forceOverwrite) {
process.exit(1);
}
-
- await emptyDir(cwd);
+ mkdirp(cwd);
}
} else {
mkdirp(cwd);