diff --git a/Setup/6_Polish.sh b/Setup/6_Polish.sh index 14de93d..9976ba6 100755 --- a/Setup/6_Polish.sh +++ b/Setup/6_Polish.sh @@ -68,12 +68,11 @@ for FILE in "${!TEMPLATES[@]}"; do fi done -# Dateien von ~/.config/hypr/scripts nach ~/.config/hypr/UserScripts kopieren +# Zielverzeichnis und UserKeybinds-Datei definieren SOURCE_DIR="$HOME/.config/hypr/scripts" TARGET_DIR="$HOME/.config/hypr/UserScripts" CONFIG_DIR="$HOME/.config/hypr/UserConfigs" - -USER_KEYBINDS_FILE="$CONFIG_DIR/UserKeybinds.conf" +USER_KEYBINDS_FILE="$CONFIG_DIR/UserKeybinds.conf" # Definition an der richtigen Stelle # Bereinige fälschlicherweise kopierte Dateien echo "📂 Überprüfe und bereinige Dateien im Verzeichnis $TARGET_DIR..." @@ -103,24 +102,24 @@ else echo "⚠️ Zielverzeichnis $TARGET_DIR existiert nicht. Keine Bereinigung erforderlich." fi -# Kopiere nur relevante Dateien +# Kopiere nur relevante Dateien und behalte die Verzeichnisstruktur bei echo "📂 Verarbeite Dateien im Verzeichnis $SOURCE_DIR..." mkdir -p "$TARGET_DIR" COPIED_FILES=() # Array, um die tatsächlich kopierten Dateien zu speichern if [[ -d "$SOURCE_DIR" ]]; then - for FILE in "$SOURCE_DIR"/*; do - if [[ -f "$FILE" ]]; then - BASENAME=$(basename "$FILE") + find "$SOURCE_DIR" -type f | while read -r FILE; do + RELATIVE_PATH="${FILE#$SOURCE_DIR/}" # Relativer Pfad zur Datei + TARGET_PATH="$TARGET_DIR/$RELATIVE_PATH" - # Prüfen, ob die Datei angepasst werden muss (z. B. enthält $HOME oder andere Platzhalter) - if grep -qE '\$HOME/Desktop|\$HOME/Downloads|\$HOME/Documents|\$HOME/Pictures|\$HOME/Music|\$HOME/Videos' "$FILE"; then - echo "🔄 Kopiere Datei zur Anpassung: $BASENAME" - cp "$FILE" "$TARGET_DIR" - COPIED_FILES+=("$BASENAME") # Nur den Dateinamen speichern - else - echo "ℹ️ Datei $BASENAME benötigt keine Anpassung. Überspringe Kopieren." - fi + # Prüfen, ob die Datei angepasst werden muss + if grep -qE '\$HOME/Desktop|\$HOME/Downloads|\$HOME/Documents|\$HOME/Pictures|\$HOME/Music|\$HOME/Videos|/home/[a-zA-Z0-9._-]*/Desktop|/home/[a-zA-Z0-9._-]*/Downloads|/home/[a-zA-Z0-9._-]*/Documents|/home/[a-zA-Z0-9._-]*/Pictures|/home/[a-zA-Z0-9._-]*/Music|/home/[a-zA-Z0-9._-]*/Videos|\$(xdg-user-dir)/Desktop|\$(xdg-user-dir)/Downloads|\$(xdg-user-dir)/Documents|\$(xdg-user-dir)/Pictures|\$(xdg-user-dir)/Music|\$(xdg-user-dir)/Videos' "$FILE"; then + echo "🔄 Kopiere Datei zur Anpassung: $RELATIVE_PATH" + mkdir -p "$(dirname "$TARGET_PATH")" # Zielverzeichnis erstellen + cp "$FILE" "$TARGET_PATH" + COPIED_FILES+=("$RELATIVE_PATH") # Relativen Pfad speichern + else + echo "ℹ️ Datei $RELATIVE_PATH benötigt keine Anpassung. Überspringe Kopieren." fi done else @@ -128,19 +127,31 @@ else fi # Ersetzungen in allen Dateien im Verzeichnis UserScripts vornehmen -echo "🔄 Ersetze XDG-Verzeichnisse in allen Dateien im Verzeichnis $TARGET_DIR..." +echo "🔄 Ersetze absolute Pfade, XDG-Verzeichnisse und Platzhalter in allen Dateien im Verzeichnis $TARGET_DIR..." for FILE in "$TARGET_DIR"/*; do if [[ -f "$FILE" ]]; then echo "Verarbeite Datei: $FILE" # Ersetzungen vornehmen sed -i \ - -e "s|\$HOME/Desktop|$(xdg-user-dir DESKTOP 2>/dev/null || echo "$HOME/Desktop")|g" \ - -e "s|\$HOME/Downloads|$(xdg-user-dir DOWNLOAD 2>/dev/null || echo "$HOME/Downloads")|g" \ - -e "s|\$HOME/Documents|$(xdg-user-dir DOCUMENTS 2>/dev/null || echo "$HOME/Documents")|g" \ - -e "s|\$HOME/Pictures|$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")|g" \ - -e "s|\$HOME/Music|$(xdg-user-dir MUSIC 2>/dev/null || echo "$HOME/Music")|g" \ - -e "s|\$HOME/Videos|$(xdg-user-dir VIDEOS 2>/dev/null || echo "$HOME/Videos")|g" \ + -e "s|$HOME/Desktop|$(xdg-user-dir DESKTOP 2>/dev/null || echo \"\$HOME/Desktop\")|g" \ + -e "s|$HOME/Downloads|$(xdg-user-dir DOWNLOAD 2>/dev/null || echo \"\$HOME/Downloads\")|g" \ + -e "s|$HOME/Documents|$(xdg-user-dir DOCUMENTS 2>/dev/null || echo \"\$HOME/Documents\")|g" \ + -e "s|$HOME/Pictures|$(xdg-user-dir PICTURES 2>/dev/null || echo \"\$HOME/Pictures\")|g" \ + -e "s|$HOME/Music|$(xdg-user-dir MUSIC 2>/dev/null || echo \"\$HOME/Music\")|g" \ + -e "s|$HOME/Videos|$(xdg-user-dir VIDEOS 2>/dev/null || echo \"\$HOME/Videos\")|g" \ + -e "s|/home/[a-zA-Z0-9._-]*/Desktop|$(xdg-user-dir DESKTOP 2>/dev/null || echo \"\$HOME/Desktop\")|g" \ + -e "s|/home/[a-zA-Z0-9._-]*/Downloads|$(xdg-user-dir DOWNLOAD 2>/dev/null || echo \"\$HOME/Downloads\")|g" \ + -e "s|/home/[a-zA-Z0-9._-]*/Documents|$(xdg-user-dir DOCUMENTS 2>/dev/null || echo \"\$HOME/Documents\")|g" \ + -e "s|/home/[a-zA-Z0-9._-]*/Pictures|$(xdg-user-dir PICTURES 2>/dev/null || echo \"\$HOME/Pictures\")|g" \ + -e "s|/home/[a-zA-Z0-9._-]*/Music|$(xdg-user-dir MUSIC 2>/dev/null || echo \"\$HOME/Music\")|g" \ + -e "s|/home/[a-zA-Z0-9._-]*/Videos|$(xdg-user-dir VIDEOS 2>/dev/null || echo \"\$HOME/Videos\")|g" \ + -e "s|\$(xdg-user-dir)/Desktop|$(xdg-user-dir DESKTOP 2>/dev/null || echo \"\$HOME/Desktop\")|g" \ + -e "s|\$(xdg-user-dir)/Downloads|$(xdg-user-dir DOWNLOAD 2>/dev/null || echo \"\$HOME/Downloads\")|g" \ + -e "s|\$(xdg-user-dir)/Documents|$(xdg-user-dir DOCUMENTS 2>/dev/null || echo \"\$HOME/Documents\")|g" \ + -e "s|\$(xdg-user-dir)/Pictures|$(xdg-user-dir PICTURES 2>/dev/null || echo \"\$HOME/Pictures\")|g" \ + -e "s|\$(xdg-user-dir)/Music|$(xdg-user-dir MUSIC 2>/dev/null || echo \"\$HOME/Music\")|g" \ + -e "s|\$(xdg-user-dir)/Videos|$(xdg-user-dir VIDEOS 2>/dev/null || echo \"\$HOME/Videos\")|g" \ "$FILE" echo "✅ Ersetzungen in $FILE abgeschlossen."