From 2b9bbc4cef7a646c584e78a9cc4d3c4c82c00868 Mon Sep 17 00:00:00 2001 From: Joseph Garrone Date: Fri, 28 Jun 2024 19:03:19 +0200 Subject: [PATCH] Ensure pnpm dlx isn't used --- src/bin/main.ts | 3 +++ src/bin/tools/assertNoPnpmDlx.ts | 15 +++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 src/bin/tools/assertNoPnpmDlx.ts diff --git a/src/bin/main.ts b/src/bin/main.ts index 84125409..c935e171 100644 --- a/src/bin/main.ts +++ b/src/bin/main.ts @@ -3,11 +3,14 @@ import { termost } from "termost"; import { readThisNpmPackageVersion } from "./tools/readThisNpmPackageVersion"; import * as child_process from "child_process"; +import { assertNoPnpmDlx } from "./tools/assertNoPnpmDlx"; export type CliCommandOptions = { projectDirPath: string | undefined; }; +assertNoPnpmDlx(); + const program = termost( { name: "keycloakify", diff --git a/src/bin/tools/assertNoPnpmDlx.ts b/src/bin/tools/assertNoPnpmDlx.ts new file mode 100644 index 00000000..7d87ec1b --- /dev/null +++ b/src/bin/tools/assertNoPnpmDlx.ts @@ -0,0 +1,15 @@ +import { sep as pathSep } from "path"; +import chalk from "chalk"; + +export function assertNoPnpmDlx() { + if (__dirname.includes(`${pathSep}pnpm${pathSep}dlx${pathSep}`)) { + console.log( + [ + chalk.red("Please don't use `pnpm dlx keycloakify`"), + "\nUse `npx keycloakify` or `pnpm exec keycloakify` instead since you want to use the keycloakify", + "version that is installed in your project and not the latest version on NPM." + ].join(" ") + ); + process.exit(1); + } +}