#!/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 < /feature <тикет> /review [фокус] /rfc <тема> /kit-config Проверка: /kit-config — покажет действующие корпоративные значения Внутренний курс по Pi: ${INTERNAL_COURSE_URL} ──────────────────────────────────────────────────────── EOF