Feat: Erweitert das kopieren und ersetzen von Vorkommnissen der xdg-Ordner.

This commit is contained in:
DragonSlayer_14 2025-03-08 17:45:40 +01:00
parent dba8ac5afc
commit c9edf7fe98

View File

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