- Add tsc build step (tsconfig.build.json) so npm package ships compiled JS instead of raw TypeScript requiring tsx at runtime - Update qmd wrapper and daemon spawn to use dist/qmd.js in production while keeping tsx for development - Add self-installing pre-push hook validating v* tag pushes: package.json version match, changelog entry, CI status - Add release.sh script that renames [Unreleased] to versioned entry, bumps package.json, commits, and tags - Add extract-changelog.sh for cumulative GitHub release notes - Update publish workflow with build step and GitHub release creation - Flesh out CHANGELOG.md with full history from 0.1.0 through 1.0.0 in Keep-a-Changelog format with PR/contributor attributions - Add release standards and changelog guidelines to CLAUDE.md
47 lines
1.2 KiB
Bash
Executable File
47 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# qmd - Quick Markdown Search
|
|
set -euo pipefail
|
|
|
|
# Find node - prefer PATH, fallback to known locations
|
|
find_node() {
|
|
if command -v node &>/dev/null; then
|
|
local ver=$(node --version 2>/dev/null | sed 's/^v//' || echo "0")
|
|
local major="${ver%%.*}"
|
|
if [[ "$major" -ge 22 ]]; then
|
|
command -v node
|
|
return 0
|
|
fi
|
|
fi
|
|
|
|
# Fallback: derive paths (need HOME)
|
|
: "${HOME:=$(eval echo ~)}"
|
|
|
|
# Check known locations
|
|
local candidates=(
|
|
"$HOME/.local/share/mise/installs/node/latest/bin/node"
|
|
"$HOME/.local/share/mise/shims/node"
|
|
"$HOME/.asdf/shims/node"
|
|
"/opt/homebrew/bin/node"
|
|
"/usr/local/bin/node"
|
|
"$HOME/.nvm/current/bin/node"
|
|
)
|
|
for c in "${candidates[@]}"; do
|
|
[[ -x "$c" ]] && { echo "$c"; return 0; }
|
|
done
|
|
|
|
return 1
|
|
}
|
|
|
|
NODE=$(find_node) || { echo "Error: node (>=22) not found. Install from https://nodejs.org" >&2; exit 1; }
|
|
|
|
# Resolve symlinks to find script location
|
|
SOURCE="${BASH_SOURCE[0]}"
|
|
while [[ -L "$SOURCE" ]]; do
|
|
DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
|
|
SOURCE="$(readlink "$SOURCE")"
|
|
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
|
|
done
|
|
SCRIPT_DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
|
|
|
|
exec "$NODE" "$SCRIPT_DIR/dist/qmd.js" "$@"
|