diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..bfd445b --- /dev/null +++ b/install.sh @@ -0,0 +1,61 @@ +#!/usr/bin/env bash +# install.sh — Installeur interactif de skills IA +# Dépôt : https://gitea.maison43.duckdns.org/gilles/mes_skills +set -euo pipefail + +# ── Couleurs Gruvbox Dark 256 ────────────────────────────────────── +GRV_FG='\033[38;5;223m' +GRV_RED='\033[38;5;167m' +GRV_GREEN='\033[38;5;142m' +GRV_YELLOW='\033[38;5;214m' +GRV_BLUE='\033[38;5;109m' +GRV_PURPLE='\033[38;5;175m' +GRV_AQUA='\033[38;5;108m' +GRV_ORANGE='\033[38;5;208m' +GRV_GRAY='\033[38;5;245m' +RESET='\033[0m' + +# ── Thème fzf Gruvbox Dark ──────────────────────────────────────── +export FZF_DEFAULT_OPTS=" + --color=bg+:#3c3836,bg:#282828,spinner:#fb4934,hl:#928374 + --color=fg:#ebdbb2,header:#928374,info:#8ec07c,pointer:#fb4934 + --color=marker:#fb4934,fg+:#ebdbb2,prompt:#fb4934,hl+:#fb4934 + --border=rounded --height=80% --layout=reverse + --header-lines=2 +" + +# ── Icônes ──────────────────────────────────────────────────────── +ICO_OK="✓" +ICO_UPD="↑" +ICO_NEW="+" +ICO_NA="·" +ICO_LOCAL="●L" +ICO_GLOBAL="●G" +ICO_SKIP="○" + +# ── Configuration ───────────────────────────────────────────────── +REPO_URL="https://gitea.maison43.duckdns.org/gilles/mes_skills.git" +REPO_DIR="/tmp/mes_skills_$$" +STATE_FILE="/tmp/skills_state_$$" + +SKILLS_DEBUG="${SKILLS_DEBUG:-0}" +SKILLS_DRY_RUN="${SKILLS_DRY_RUN:-0}" +SKILLS_REPO="${SKILLS_REPO:-}" +SKILLS_TAG="${SKILLS_TAG:-}" +SKILLS_AGENT="${SKILLS_AGENT:-}" + +# ── Helpers couleur ─────────────────────────────────────────────── +ok() { echo -e "${GRV_GREEN}${ICO_OK} $*${RESET}"; } +err() { echo -e "${GRV_RED}✗ $*${RESET}" >&2; } +info() { echo -e "${GRV_BLUE}→ $*${RESET}"; } +warn() { echo -e "${GRV_ORANGE}⚠ $*${RESET}"; } +debug() { [[ "$SKILLS_DEBUG" == "1" ]] && echo -e "${GRV_GRAY}[DBG] $*${RESET}" || true; } +header() { echo -e "\n${GRV_PURPLE}╔══ $* ══╗${RESET}\n"; } + +# ── Nettoyage automatique ───────────────────────────────────────── +cleanup() { + debug "Nettoyage $REPO_DIR et $STATE_FILE" + [[ -d "$REPO_DIR" ]] && rm -rf "$REPO_DIR" + [[ -f "$STATE_FILE" ]] && rm -f "$STATE_FILE" +} +trap cleanup EXIT