#!/bin/bash # 🦉 Crumbpages Doktor - Der Wald-Sanitäter für dein Repo # Farben für schöne Ausgabe GREEN='\033[0;32m' BLUE='\033[0;34m' RED='\033[0;31m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo -e "${BLUE}🦉 Crumbpages Doktor ist bereit!${NC}" echo "Prüfe Vitalwerte des Waldes..." echo "-----------------------------------" # 1. Check: Sind wir in einem Git Repo? if [ ! -d ".git" ]; then echo -e "${RED}❌ Fehler: Wir sind nicht im Wald (kein .git Ordner hier).${NC}" echo "Bitte führe mich im Hauptverzeichnis deines Projekts aus." exit 1 fi # 2. Check: Remote Status echo -n "Prüfe Verbindung zum Basislager... " git remote update > /dev/null 2>&1 if [ $? -eq 0 ]; then echo -e "${GREEN}OK${NC}" # Check ob wir hinterher hinken LOCAL=$(git rev-parse @) REMOTE=$(git rev-parse @{u}) if [ $LOCAL = $REMOTE ]; then echo -e "${GREEN}✅ Alles synchron.${NC}" else echo -e "${YELLOW}⚠️ Unterschiede zum Server erkannt.${NC}" fi else echo -e "${RED}Fehler (Kein Netz?)${NC}" fi # 3. Check: Lokale Änderungen if [ -z "$(git status --porcelain)" ]; then echo -e "${GREEN}✅ Der Wald ist ruhig. Keine Änderungen zu speichern.${NC}" exit 0 else echo -e "${YELLOW}📝 Es gibt ungespeicherte Änderungen:${NC}" git status --short fi # 4. Action: Update durchführen? echo "" echo -e "${BLUE}Soll ich ein Update durchführen (add + commit + push)?${NC}" read -p "[j]a / [n]ein: " -n 1 -r echo "" if [[ $REPLY =~ ^[Jj]$ ]]; then echo "" echo -e "${BLUE}💊 Verarzte Dateien... (git add)${NC}" git add . echo -e "${BLUE}✍️ Bitte Commit-Nachricht eingeben (Enter für Standard):${NC}" read COMMIT_MSG if [ -z "$COMMIT_MSG" ]; then COMMIT_MSG="update: crumbpages maintenance 🌲" fi echo -e "${BLUE}📦 Schnüre Paket... (git commit)${NC}" git commit -m "$COMMIT_MSG" echo -e "${BLUE}🚀 Sende zum Mutterschiff... (git push)${NC}" if git push; then echo "" echo -e "${GREEN}✅ Operation erfolgreich! Der Wald ist sicher.${NC}" echo -e " Commit: $COMMIT_MSG" else echo "" echo -e "${RED}❌ Fehler beim Upload. Prüfe deine Verbindung oder Keys.${NC}" fi else echo -e "${BLUE}👋 Alles klar, bis zum nächsten Mal!${NC}" fi