Fix git safe.directory for NAS/Synology environments
This commit is contained in:
parent
f822b93e2e
commit
d2a2905369
56
install.sh
56
install.sh
|
|
@ -183,40 +183,56 @@ 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}"
|
|
||||||
|
|
||||||
# Kopiere Dateien (ueberschreibt nicht .env)
|
if git clone "${REPO_URL}" "${TEMP_DIR}"; then
|
||||||
shopt -s dotglob
|
# Kopiere Dateien (ueberschreibt nicht .env)
|
||||||
for item in "${TEMP_DIR}"/*; do
|
shopt -s dotglob 2>/dev/null || true
|
||||||
basename_item=$(basename "$item")
|
for item in "${TEMP_DIR}"/*; do
|
||||||
if [ "$basename_item" != ".env" ] && [ "$basename_item" != ".git" ]; then
|
basename_item=$(basename "$item")
|
||||||
cp -r "$item" "${INSTALL_DIR}/"
|
if [ "$basename_item" != ".env" ] && [ "$basename_item" != ".git" ]; then
|
||||||
fi
|
cp -r "$item" "${INSTALL_DIR}/"
|
||||||
done
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
# .git Verzeichnis kopieren fuer Updates
|
# .git Verzeichnis kopieren fuer Updates
|
||||||
cp -r "${TEMP_DIR}/.git" "${INSTALL_DIR}/"
|
cp -r "${TEMP_DIR}/.git" "${INSTALL_DIR}/"
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user