diff --git a/crumbpages-doktor.sh b/crumbpages-doktor.sh new file mode 100755 index 0000000..485c80b --- /dev/null +++ b/crumbpages-doktor.sh @@ -0,0 +1,81 @@ +#!/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