#!/usr/bin/env bash CACHE_FILE="/tmp/git_bw_token_$USER" get_credentials() { # 1. Versuch: Cache laden if [ -f "$CACHE_FILE" ]; then cat "$CACHE_FILE" return fi # 2. Versuch: Bitwarden abfragen (nur wenn BW_SESSION da ist) if [ -n "$BW_SESSION" ]; then # Hier dein bw-Befehl (Beispielhaft) TOKEN=$(bw get item gitea.iten.pro | jq -r '.login.password') USER_NAME=$(bw get item gitea.iten.pro | jq -r '.login.username') if [ -n "$TOKEN" ]; then OUT="username=$USER_NAME\npassword=$TOKEN" echo -e "$OUT" > "$CACHE_FILE" chmod 600 "$CACHE_FILE" echo -e "$OUT" return fi fi printf "\033[1;31mFEHLER:\033[0m Bitwarden ist gesperrt! Bitte '\033[1munlock\033[22m' ausführen.\n" >&2 exit 1 } case "$1" in get) get_credentials ;; store|erase) ;; # Git verlangt diese Endpunkte, wir ignorieren sie esac