touch themeRename.sh
chmod +x themeRename.sh
nano themeRename.sh

 


#---------------------------------------------------------
# Skrypt zmieniający nazwę tematu (Wersja V4 - Finalna)
# ©2025 Dariusz Frączkiewicz
#---------------------------------------------------------
clear

SOURCE_ROOT="web/themes/contrib"
TARGET_ROOT="web/themes/custom"

echo "Dostępne tematy w $SOURCE_ROOT:"
ls -1 "$SOURCE_ROOT"
echo "-----------------------------------"

read -p "Nazwa źródłowa (np. mercury): " OLD_NAME
read -p "Nowa nazwa (np. dafr_mercury): " NEW_NAME

SOURCE_PATH="$SOURCE_ROOT/$OLD_NAME"
TEMP_DEST="$TARGET_ROOT/temp_renaming_folder"

# 1. Sprawdzanie i czyszczenie
if [ ! -d "$SOURCE_PATH" ]; then
    echo "Błąd: Temat $OLD_NAME nie istnieje w $SOURCE_ROOT"
    exit 1
fi

rm -rf "$TEMP_DEST"
rm -rf "$TARGET_ROOT/$NEW_NAME"
mkdir -p "$TARGET_ROOT"

# 2. Kopiowanie do folderu tymczasowego
echo "Kopiowanie plików..."
cp -a "$SOURCE_PATH" "$TEMP_DEST"

# 3. Zmiana zawartości plików (tekst wewnątrz)
echo "Aktualizacja zawartości plików..."
find "$TEMP_DEST" -type f -exec sed -i "s/$OLD_NAME/$NEW_NAME/g" {} +

# 4. Zmiana nazw plików i podfolderów
echo "Zmiana nazw plików..."
find "$TEMP_DEST" -depth -name "*$OLD_NAME*" | while read -r file; do
    dn=$(dirname "$file")
    bn=$(basename "$file")
    new_bn=$(echo "$bn" | sed "s/$OLD_NAME/$NEW_NAME/g")
    if [ "$bn" != "$new_bn" ]; then
        mv "$file" "$dn/$new_bn"
    fi
done

# 5. Finalizacja struktury (zmiana nazwy głównego folderu)
echo "Przenoszenie do docelowej lokalizacji..."
mv "$TEMP_DEST" "$TARGET_ROOT/$NEW_NAME"

# 6. Specjalna zmiana nazwy w pliku .info.yml
# Tworzymy ładną nazwę (np. dafr_mercury -> Dafr Mercury)
HUMAN_NAME=$(echo "$NEW_NAME" | sed 's/_/ /g' | awk '{for(i=1;i<=NF;i++)sub(/./,toupper(substr($i,1,1)),$i)}1')
INFO_FILE="$TARGET_ROOT/$NEW_NAME/$NEW_NAME.info.yml"

if [ -f "$INFO_FILE" ]; then
    echo "Ustawianie nazwy wyświetlanej na: $HUMAN_NAME"
    sed -i "s/^name: .*/name: $HUMAN_NAME/" "$INFO_FILE"
fi

echo "-----------------------------------"
echo "Sukces! Nowy temat jest gotowy."
echo "Lokalizacja: $TARGET_ROOT/$NEW_NAME"
echo "Nazwa w Drupalu: $HUMAN_NAME"
echo "-----------------------------------"

Spis treści: