From da79e77d34077f3e462482e622514d762939dfac Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 13 Feb 2026 19:18:45 -0500 Subject: [PATCH] feat: add --version/-v flag. Closes #88 --- src/qmd.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/qmd.ts b/src/qmd.ts index 2cc8f7e..e49813c 100755 --- a/src/qmd.ts +++ b/src/qmd.ts @@ -2030,6 +2030,7 @@ function parseCLI() { type: "boolean", }, help: { type: "boolean", short: "h" }, + version: { type: "boolean", short: "v" }, // Search options n: { type: "string" }, "min-score": { type: "string" }, @@ -2155,10 +2156,32 @@ function showHelp(): void { console.log(`Index: ${getDbPath()}`); } +async function showVersion(): Promise { + const scriptDir = import.meta.dir; + const pkgPath = resolve(scriptDir, "..", "package.json"); + const pkg = JSON.parse(readFileSync(pkgPath, "utf-8")); + + let commit = ""; + try { + const result = await $`git -C ${scriptDir} rev-parse --short HEAD`.quiet(); + commit = result.text().trim(); + } catch { + // Not a git repo or git not available + } + + const versionStr = commit ? `${pkg.version} (${commit})` : pkg.version; + console.log(`qmd ${versionStr}`); +} + // Main CLI - only run if this is the main module if (import.meta.main) { const cli = parseCLI(); + if (cli.values.version) { + await showVersion(); + process.exit(0); + } + if (!cli.command || cli.values.help) { showHelp(); process.exit(cli.values.help ? 0 : 1);