#!/bin/bash

# FortuneCookie Branch Helper - Narrensicheres Tool für Branch-Wechsel
# Einfach aufrufen mit: ./git-branch [daily|testing|stable]

REPO_DIR="/home/chrischi/DEV/UT/fortunecookie-neu/testing"

# Farbcodes für Ausgabe
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo_current_branch() {
    cd "$REPO_DIR" 2>/dev/null
    if [ $? -ne 0 ]; then
        echo -e "${RED}Fehler: Repo nicht gefunden unter $REPO_DIR${NC}"
        exit 1
    fi
    current=$(git branch --show-current 2>/dev/null)
    if [ -z "$current" ]; then
        echo -e "${RED}Fehler: Nicht in einem Git-Repository oder kein Branch ausgewählt${NC}"
        exit 1
    fi
    echo -e "${GREEN}Aktueller Branch: $current${NC}"
}

usage() {
    echo "FortuneCookie Branch Helper v1.0"
    echo "=============================="
    echo ""
    echo "Verfügbare Befehle:"
    echo "  ./git-branch                 - Zeigt aktuellen Branch"
    echo "  ./git-branch daily          - Wechselt zu daily (Entwicklung)"
    echo "  ./git-branch testing        - Wechselt zu testing"
    echo "  ./git-branch stable         - Wechselt zu stable"
    echo "  ./git-branch status         - Zeigt alle Branches"
    echo ""
    echo "Hinweis: Nach dem Wechsel bleibst du im Branch, auch nach Terminal-Neustart."
    echo "         Du musst nur cd \"$REPO_DIR\" ausführen, um ins Projekt zu kommen."
    exit 1
}

# Kein Argument: aktuellen Branch anzeigen
if [ $# -eq 0 ]; then
    echo_current_branch
    exit 0
fi

# Status anzeigen
if [ "$1" = "status" ]; then
    cd "$REPO_DIR"
    echo -e "${YELLOW}=== Branch Status ===${NC}"
    git branch -a
    echo ""
    echo_current_branch
    exit 0
fi

# Branch wechseln
TARGET="$1"

# Überprüfen ob gültiger Branch
VALID_BRANCHES="daily testing stable"
if ! echo "$VALID_BRANCHES" | grep -q "$TARGET"; then
    echo -e "${RED}Fehler: Ungültiger Branch '$TARGET'${NC}"
    echo "Gültige Branches: $VALID_BRANCHES"
    exit 1
fi

# Wechseln
cd "$REPO_DIR"
echo -e "${YELLOW}Wechsle zu Branch: $TARGET${NC}"
git checkout "$TARGET" 2>/dev/null

if [ $? -eq 0 ]; then
    echo -e "${GREEN}Erfolgreich zu Branch '$TARGET' gewechselt!${NC}"
    echo ""
    echo "Du kannst jetzt arbeiten. Wenn du das Terminal schliest,"
    echo "bleibst du in diesem Branch. Beim nächsten Öffnen einfach:"
    echo "  cd $REPO_DIR"
    echo "  und dann wie gewohnt weiterarbeiten."
else
    echo -e "${RED}Fehler: Branch-Wechsel zu '$TARGET' fehlgeschlagen${NC}"
    echo "Mögliche Ursache: Branch existiert nicht oder uncommited changes."
    echo "Lösung: git status prüfen und ggf. changes committen oder stashen."
    exit 1
fi
