Fix git safe.directory for NAS/Synology environments

This commit is contained in:
XPS\Micro 2026-01-30 22:29:25 +01:00
parent f822b93e2e
commit d2a2905369

View File

@ -183,28 +183,38 @@ echo -e " Git: ${GREEN}OK${NC}"
# 3. Pruefe ob bereits installiert (Update vs. Neuinstallation) # 3. Pruefe ob bereits installiert (Update vs. Neuinstallation)
# ============================================================ # ============================================================
echo "" echo ""
# Git safe.directory setzen (fuer NAS/Container-Umgebungen)
git config --global --add safe.directory "${INSTALL_DIR}" 2>/dev/null || true
if [ -d "${INSTALL_DIR}/.git" ]; then if [ -d "${INSTALL_DIR}/.git" ]; then
echo -e "${YELLOW}Update erkannt - hole neueste Aenderungen...${NC}" echo -e "${YELLOW}Update erkannt - hole neueste Aenderungen...${NC}"
# Sichere lokale Aenderungen cd "${INSTALL_DIR}"
if ! git diff --quiet 2>/dev/null; then
# Sichere lokale Aenderungen (ignoriere Fehler)
if git diff --quiet 2>/dev/null; then
: # Keine Aenderungen
else
echo "Lokale Aenderungen gefunden, erstelle Stash..." echo "Lokale Aenderungen gefunden, erstelle Stash..."
git stash git stash 2>/dev/null || true
fi fi
git fetch origin # Update durchfuehren
git pull origin main if git fetch origin 2>/dev/null && git pull origin main 2>/dev/null; then
echo -e "${GREEN}Repository aktualisiert${NC}" echo -e "${GREEN}Repository aktualisiert${NC}"
else
echo -e "${YELLOW}Git-Update fehlgeschlagen, fahre mit lokalen Dateien fort...${NC}"
fi
else else
echo "Neuinstallation - klone Repository..." echo "Neuinstallation - klone Repository..."
# Temporaeres Verzeichnis fuer Clone # Temporaeres Verzeichnis fuer Clone
TEMP_DIR=$(mktemp -d) TEMP_DIR=$(mktemp -d)
git clone "${REPO_URL}" "${TEMP_DIR}"
if git clone "${REPO_URL}" "${TEMP_DIR}"; then
# Kopiere Dateien (ueberschreibt nicht .env) # Kopiere Dateien (ueberschreibt nicht .env)
shopt -s dotglob shopt -s dotglob 2>/dev/null || true
for item in "${TEMP_DIR}"/*; do for item in "${TEMP_DIR}"/*; do
basename_item=$(basename "$item") basename_item=$(basename "$item")
if [ "$basename_item" != ".env" ] && [ "$basename_item" != ".git" ]; then if [ "$basename_item" != ".env" ] && [ "$basename_item" != ".git" ]; then
@ -217,6 +227,12 @@ else
rm -rf "${TEMP_DIR}" rm -rf "${TEMP_DIR}"
echo -e "${GREEN}Repository geklont${NC}" echo -e "${GREEN}Repository geklont${NC}"
else
echo -e "${RED}Fehler: Repository konnte nicht geklont werden!${NC}"
echo "URL: ${REPO_URL}"
rm -rf "${TEMP_DIR}"
exit 1
fi
fi fi
# ============================================================ # ============================================================