From cce35d37d63cd8483a4de236d6e489be03505176 Mon Sep 17 00:00:00 2001 From: Ryan Christian <33403762+rschristian@users.noreply.github.com> Date: Tue, 23 Feb 2021 10:43:00 -0600 Subject: [PATCH] refactor: create-wmr checks dir before installing (#365) * refactor: create-wmr checks dir before installing * docs: Adding changeset --- .changeset/grumpy-pens-decide.md | 5 +++++ packages/create-wmr/src/index.js | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 .changeset/grumpy-pens-decide.md diff --git a/.changeset/grumpy-pens-decide.md b/.changeset/grumpy-pens-decide.md new file mode 100644 index 000000000..f33a5f151 --- /dev/null +++ b/.changeset/grumpy-pens-decide.md @@ -0,0 +1,5 @@ +--- +'create-wmr': minor +--- + +Blocks accidentally creating a new WMR project into a directory that already exists diff --git a/packages/create-wmr/src/index.js b/packages/create-wmr/src/index.js index 991a2de1b..13044dfe7 100644 --- a/packages/create-wmr/src/index.js +++ b/packages/create-wmr/src/index.js @@ -11,12 +11,19 @@ const { dim, bold, cyan, red } = kleur; sade('create-wmr [dir]', true) .option('--eslint', 'Set up the Preact ESLint configuration (takes a lot longer)', false) + .option('--force', 'Force install into an existing directory', false) .describe('Initialize a WMR project') .example('npm init wmr ./some-directory') .action(async (dir, opts) => { const origCwd = process.cwd(); let cwd = process.cwd(); if (dir) { + if ((await fs.stat(dir)).isDirectory() && !opts.force) { + process.stderr.write( + `${red(`Refusing to overwrite directory! Please specify a different directory or use the '--force' flag`)}\n` + ); + process.exit(1); + } cwd = resolve(cwd, dir || '.'); await fs.mkdir(cwd, { recursive: true }); process.chdir(cwd);