#!/usr/bin/env bash # @wcag-audit/cli installer — license-gated. # Usage: curl -fsSL https://wcagaudit.io/install | bash -s -- set -e KEY="${1:-${WCAG_LICENSE_KEY:-}}" if [ -z "$KEY" ]; then echo "error: license key required." echo "" echo "usage:" echo " curl -fsSL https://wcagaudit.io/install | bash -s -- " echo "" echo "Get a key at https://wcagaudit.io/pricing (free tier available)." exit 1 fi BASE_URL="https://wcagaudit.io" TARBALL_URL="$BASE_URL/api/install/download?key=$KEY" INSTALL_DIR="$HOME/.wcag-audit/install" BIN_DIR="$HOME/.local/bin" echo "→ validating license..." HTTP_STATUS=$(curl -s -o /tmp/wcag-install.tgz -w "%{http_code}" -L "$TARBALL_URL") if [ "$HTTP_STATUS" != "200" ]; then echo "error: license validation failed (HTTP $HTTP_STATUS)." cat /tmp/wcag-install.tgz 2>/dev/null | head -20 rm -f /tmp/wcag-install.tgz exit 1 fi echo "→ extracting to $INSTALL_DIR..." rm -rf "$INSTALL_DIR" mkdir -p "$INSTALL_DIR" tar -xzf /tmp/wcag-install.tgz -C "$INSTALL_DIR" --strip-components=1 rm -f /tmp/wcag-install.tgz echo "→ installing dependencies..." (cd "$INSTALL_DIR" && npm install --omit=dev --silent 2>&1 | tail -3) echo "→ creating wcag-audit symlink in $BIN_DIR..." mkdir -p "$BIN_DIR" chmod +x "$INSTALL_DIR/src/cli.js" ln -sf "$INSTALL_DIR/src/cli.js" "$BIN_DIR/wcag-audit" echo "→ saving license key to ~/.wcagauditrc..." cat > "$HOME/.wcagauditrc" <