62 lines
2.6 KiB
Bash
Executable File
62 lines
2.6 KiB
Bash
Executable File
#!/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
|