diff --git a/cli.js b/cli.js index f7e26de..df9a682 100755 --- a/cli.js +++ b/cli.js @@ -56,28 +56,31 @@ const cli = meow(` }, }); -(async () => { - try { - const {rename} = cli.flags; - const stringTemplate = '{{basename}}'; - if (rename && rename.includes(stringTemplate)) { - cli.flags.rename = basename => rename.replace(stringTemplate, basename); - } +try { + const {rename} = cli.flags; + const stringTemplate = '{{basename}}'; + if (rename?.includes(stringTemplate)) { + cli.flags.rename = basename => { + const parts = basename.split('.'); + const fileExtension = parts.length > 1 ? `.${parts.pop()}` : ''; + const nameWithoutExtension = parts.join('.'); + return rename.replace(stringTemplate, nameWithoutExtension) + fileExtension; + }; + } - await cpy(cli.input, cli.input.pop(), { - cwd: cli.flags.cwd, - rename: cli.flags.rename, - overwrite: cli.flags.overwrite, - dot: cli.flags.dot, - flat: cli.flags.flat, - concurrency: cli.flags.concurrency, - }); - } catch (error) { - if (error.name === 'CpyError') { - console.error(error.message); - process.exit(1); - } else { - throw error; - } + await cpy(cli.input, cli.input.pop(), { + cwd: cli.flags.cwd, + rename: cli.flags.rename, + overwrite: cli.flags.overwrite, + dot: cli.flags.dot, + flat: cli.flags.flat, + concurrency: cli.flags.concurrency, + }); +} catch (error) { + if (error.name === 'CpyError') { + console.error(error.message); + process.exit(1); + } else { + throw error; } -})(); +} diff --git a/package.json b/package.json index 227ad0d..3fa6a1a 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cpy": "cli.js" }, "engines": { - "node": ">=12.20" + "node": ">=16" }, "scripts": { "test": "xo && ava" @@ -51,14 +51,14 @@ "contents" ], "dependencies": { - "cpy": "^9.0.0", - "meow": "^10.1.2" + "cpy": "^10.1.0", + "meow": "^12.0.1" }, "devDependencies": { - "ava": "^4.0.1", - "execa": "^6.1.0", + "ava": "^5.3.1", + "execa": "^7.1.1", "path-exists": "^5.0.0", - "tempfile": "^4.0.0", - "xo": "^0.48.0" + "tempfile": "^5.0.0", + "xo": "^0.54.2" } }