Files
pi-kit/install.sh
T
dev 927010e4bf feat: add idempotent install.sh bootstrap script
- checks Node >= 20, installs Pi if missing, runs pi install with PI_KIT_REPO (single source of the repo address, no version ref)
- verifies API key env var (Anthropic/proxy TODO), prints where to get it
- prints cheat sheet: run, update, commands, internal course link (TODO)
2026-07-16 11:00:47 +03:00

92 lines
4.4 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
#
# pi-kit bootstrap — one-shot setup for new engineers. Idempotent: safe to re-run.
#
# Usage:
# curl -fsSL https://git.codelab.vc/ai/pi-kit/-/raw/main/install.sh | bash
# # or, from a checkout:
# ./install.sh
#
set -euo pipefail
# ---------------------------------------------------------------------------
# The ONLY place the repository address appears. No version ref on purpose, so
# `pi update --extensions` always pulls the latest main.
# ---------------------------------------------------------------------------
PI_KIT_REPO="git:git.codelab.vc/ai/pi-kit"
MIN_NODE_MAJOR=20
INTERNAL_COURSE_URL="TODO: ссылка на внутренний курс по Pi"
info() { printf '\033[1;34m==>\033[0m %s\n' "$*"; }
warn() { printf '\033[1;33m[!]\033[0m %s\n' "$*"; }
err() { printf '\033[1;31m[x]\033[0m %s\n' "$*" >&2; }
# --- 1. Node.js -------------------------------------------------------------
if ! command -v node >/dev/null 2>&1; then
err "Node.js не найден. Установи Node.js >= ${MIN_NODE_MAJOR} (https://nodejs.org) и запусти скрипт снова."
exit 1
fi
NODE_MAJOR="$(node -p 'process.versions.node.split(".")[0]')"
if [ "$NODE_MAJOR" -lt "$MIN_NODE_MAJOR" ]; then
err "Нужен Node.js >= ${MIN_NODE_MAJOR}, а установлен $(node -v). Обнови Node.js и запусти скрипт снова."
exit 1
fi
info "Node.js $(node -v) — ок."
# --- 2. Pi ------------------------------------------------------------------
if command -v pi >/dev/null 2>&1; then
info "Pi уже установлен ($(pi --version 2>/dev/null || echo 'версия неизвестна'))."
else
info "Ставлю Pi..."
curl -fsSL https://pi.dev/install.sh | sh
# Make pi available in the current shell if the installer added a new PATH dir.
if ! command -v pi >/dev/null 2>&1; then
export PATH="$HOME/.local/bin:$PATH"
fi
if ! command -v pi >/dev/null 2>&1; then
err "Pi установлен, но не найден в PATH. Открой новый терминал (или поправь PATH) и запусти скрипт снова."
exit 1
fi
fi
# --- 3. Install the corporate package --------------------------------------
info "Устанавливаю корпоративный пакет: ${PI_KIT_REPO}"
pi install "$PI_KIT_REPO"
info "Пакет установлен. Обновляться потом: pi update --extensions"
# --- 4. API keys ------------------------------------------------------------
# TODO: если используется корпоративный прокси-провайдер вместо прямого Anthropic —
# заменить проверку ниже на нужную переменную (напр. PI_PROXY_TOKEN) и адрес.
if [ -n "${ANTHROPIC_API_KEY:-}" ]; then
info "ANTHROPIC_API_KEY найден в окружении — ок."
else
warn "Не найден ANTHROPIC_API_KEY (или ключ корпоративного прокси-провайдера)."
cat <<'EOF'
Где взять ключ:
TODO: инструкция компании — портал доступов / прокси-провайдер.
Затем добавь в свой ~/.zshrc или ~/.bashrc, например:
export ANTHROPIC_API_KEY="..."
Также для скилла работы с трекером понадобятся:
export TRACKER_URL="..." # адрес трекера (или возьмётся из корп. контекста)
export JIRA_TOKEN="..." # personal access token трекера
EOF
fi
# --- 5. Cheat sheet ---------------------------------------------------------
cat <<EOF
────────────────────────────────────────────────────────
Готово! Памятка:
Запуск: pi
Обновление: pi update --extensions
Команды: /bugfix <тикет> /feature <тикет>
/review [фокус] /rfc <тема> /kit-config
Проверка: /kit-config — покажет действующие корпоративные значения
Внутренний курс по Pi: ${INTERNAL_COURSE_URL}
────────────────────────────────────────────────────────
EOF