# Verify the CraftOS-PC harness is installed and recent enough. check-craftos: @command -v craftos >/dev/null 2>&1 || { \ printf '%s\n' 'craftos not found on $PATH. See docs/install-craftos-pc.md.' >&2; \ exit 1; \ } @version="$(craftos --version)"; \ number="${version##* v}"; \ case "$number" in \ *.*.*) \ ;; \ *) \ printf '%s\n' "$version"; \ printf '%s\n' 'Could not parse CraftOS-PC version. See docs/install-craftos-pc.md.' >&2; \ exit 1; \ ;; \ esac; \ major="${number%%.*}"; \ rest="${number#*.}"; \ minor="${rest%%.*}"; \ patch="${rest#*.}"; \ patch="${patch%%[^0-9]*}"; \ printf '%s\n' "$version"; \ case "$major.$minor.$patch" in \ *[!0-9.]*|.*|*..*|*.) \ printf '%s\n' 'Could not parse CraftOS-PC version. See docs/install-craftos-pc.md.' >&2; \ exit 1; \ ;; \ esac; \ if ! { [ "${major:-0}" -gt 2 ] || \ { [ "${major:-0}" -eq 2 ] && [ "${minor:-0}" -gt 8 ]; } || \ { [ "${major:-0}" -eq 2 ] && [ "${minor:-0}" -eq 8 ] && [ "${patch:-0}" -ge 3 ]; }; }; then \ printf '%s\n' 'CraftOS-PC v2.8.3 or newer is required. See docs/install-craftos-pc.md.' >&2; \ exit 1; \ fi # Verify jq is installed. check-jq: @command -v jq >/dev/null 2>&1 || { \ printf '%s\n' 'jq not found on $PATH. See DEVELOPMENT.md.' >&2; \ exit 1; \ } # Verify luacheck is installed. check-luacheck: @command -v luacheck >/dev/null 2>&1 || { \ printf '%s\n' 'luacheck not found on $PATH. See DEVELOPMENT.md.' >&2; \ exit 1; \ } # Verify openssl is installed. check-openssl: @command -v openssl >/dev/null 2>&1 || { \ printf '%s\n' 'openssl not found on $PATH. See DEVELOPMENT.md.' >&2; \ exit 1; \ } # Verify lychee is installed. check-lychee: @command -v lychee >/dev/null 2>&1 || { \ printf '%s\n' 'lychee not found on $PATH. See DEVELOPMENT.md.' >&2; \ exit 1; \ } # Verify tools needed for local installation and CraftOS-PC launch recipes. check-install: check-craftos check-jq check-luacheck check-openssl check-lychee