#!/bin/sh
# vibe-coded.ai CLI skill installer
#
# Usage:  curl -fsSL https://vibe-coded.ai/install.sh | sh
#
# Installs the skill to ~/.claude/skills/vibe-coded-ai and links the `vibe`
# binary into ~/.local/bin. Override locations with CLAUDE_SKILLS_DIR and
# VIBE_BIN_DIR. Safe to re-run: an existing install is moved aside, not deleted.
set -eu

ZIP_URL="https://vibe-coded.ai/vibe-coded-ai-skill.zip"
SKILLS_DIR="${CLAUDE_SKILLS_DIR:-$HOME/.claude/skills}"
BIN_DIR="${VIBE_BIN_DIR:-$HOME/.local/bin}"
DEST="$SKILLS_DIR/vibe-coded-ai"

for cmd in curl unzip; do
  command -v "$cmd" >/dev/null 2>&1 || { echo "error: $cmd is required" >&2; exit 1; }
done

TMP="$(mktemp -d)"
trap 'rm -rf "$TMP"' EXIT INT TERM

echo "Downloading skill from $ZIP_URL ..."
curl -fsSL "$ZIP_URL" -o "$TMP/skill.zip"
unzip -q "$TMP/skill.zip" -d "$TMP/extract"
[ -f "$TMP/extract/vibe-coded-ai/SKILL.md" ] || { echo "error: unexpected archive layout" >&2; exit 1; }

mkdir -p "$SKILLS_DIR"
if [ -e "$DEST" ] || [ -L "$DEST" ]; then
  BACKUP="$DEST.bak.$(date +%Y%m%d%H%M%S)"
  echo "Existing install found — moving it to $BACKUP"
  mv "$DEST" "$BACKUP"
fi
mv "$TMP/extract/vibe-coded-ai" "$DEST"

mkdir -p "$BIN_DIR"
chmod +x "$DEST/bin/vibe"
ln -sf "$DEST/bin/vibe" "$BIN_DIR/vibe"

echo ""
echo "Installed: $DEST"
echo "Linked:    $BIN_DIR/vibe"
case ":$PATH:" in
  *:"$BIN_DIR":*) ;;
  *)
    echo ""
    echo "Note: $BIN_DIR is not on your PATH. Add this to your shell profile:"
    echo "  export PATH=\"$BIN_DIR:\$PATH\""
    ;;
esac
echo ""
echo "Next:  vibe login <email>   (or ask your coding agent to log in)"
echo "Docs:  https://vibe-coded.ai/docs/cli"
