touch updateDrupal.sh
sudo chmod +x updateDrupal.sh
nano updateDrupal.sh

na devil

touch updateDrupal.sh
chmod +x updateDrupal.sh
nano updateDrupal.sh

Najprostsza wersja

#! /bin/bash
chmod 775 web/sites/default
composer update -W
./vendor/bin/drush updb
./vendor/bin/drush cr

Pełna wersja Apache

#!/bin/bash

#---------------------------------------------------------
# Skrypt aktualizujący Drupal
# ©2025 Dariusz Frączkiewicz 
#---------------------------------------------------------

set -e
HTACCESS_FILE="web/.htaccess"

HOSTING1_DR="vendor/bin/drush"
HOSTING1_COMP="composer"

HOSTING2_DR="drush"
HOSTING2_COMP="composer"

HOSTING3_DR="php84 vendor/drush/drush/drush.php"
HOSTING3_COMP="php84 /usr/local/bin/composer.phar"


#############################################

# USTAWIENIA
PHP84=true
LOGIN=false
WP=false

# Wybór hostingu
HOSTING_DR=$HOSTING1_DR
HOSTING_COMP=$HOSTING1_COMP

# Czy potrzebne sudo (np. FreeBSD hosting)
USE_SUDO=true

#############################################
# Uprawnienia
#############################################
if [ "$USE_SUDO" = true ]; then
    sudo chmod 775 web/sites/default
else
    chmod 775 web/sites/default
fi

#############################################
# Composer + Drush
#############################################
$HOSTING_COMP update -W
$HOSTING_DR updb
$HOSTING_DR cr

#############################################
# Wykrycie systemu (Linux vs FreeBSD)
#############################################
SED_INPLACE="sed -i"
if [[ "$OSTYPE" == "freebsd"* ]] || [[ "$OSTYPE" == "darwin"* ]]; then
    SED_INPLACE="sed -i ''"
fi

#############################################
# 1. Blokada /user/login
#############################################
if [ "$LOGIN" = true ]; then
    if ! grep -q "RewriteRule \^user/login" "$HTACCESS_FILE"; then
        $SED_INPLACE '1i\
		# Blokada dostępu do /user/login\
		RewriteRule ^user/login$ - [F,L]\
		' "$HTACCESS_FILE"

        echo "Dodano blokadę /user/login."
    else
        echo "Blokada /user/login już istnieje."
    fi
fi

#############################################
# 2. Blokada WordPress
#############################################
if [ "$WP" = true ]; then
    if ! grep -E -q "wp-login|wp-admin" "$HTACCESS_FILE"; then
        $SED_INPLACE '/<\/IfModule>/i\
		# Blokuj WordPress\
		RewriteRule ^(wp-login|wp-admin|wp-config|wp-content|wp-includes) - [F,L]\
		' "$HTACCESS_FILE"

        echo "Dodano blokadę WordPress."
    else
        echo "Reguła WordPress już istnieje."
    fi
fi

#############################################
# 3. PHP 8.4
#############################################
if [ "$PHP84" = true ]; then
    if ! grep -q "php8.4-fpm.sock" "$HTACCESS_FILE"; then
        echo "Dodawanie PHP 8.4..."

        echo '<FilesMatch "\.php$">
    	SetHandler "proxy:unix:/run/php/php8.4-fpm.sock|fcgi://localhost"
		</FilesMatch>' >> "$HTACCESS_FILE"
    else
        echo "PHP 8.4 już ustawione."
    fi
fi

echo "Gotowe!"

Pełna wersja Devil

#!/bin/bash

#---------------------------------------------------------
# Skrypt aktualizujący Drupal
# ©2025 Dariusz Frączkiewicz 
#---------------------------------------------------------

set -e
HTACCESS_FILE="web/.htaccess"

HOSTING1_DR="vendor/bin/drush"
HOSTING1_COMP="composer"

HOSTING2_DR="drush"
HOSTING2_COMP="composer"

HOSTING3_DR="php84 vendor/drush/drush/drush.php"
HOSTING3_COMP="php84 /usr/local/bin/composer.phar"


#############################################

# USTAWIENIA
PHP84=true
LOGIN=false
WP=false

# Wybór hostingu
HOSTING_DR=$HOSTING3_DR
HOSTING_COMP=$HOSTING3_COMP

# Czy potrzebne sudo (np. FreeBSD hosting)
USE_SUDO=false

#############################################
# Uprawnienia
#############################################
if [ "$USE_SUDO" = true ]; then
    sudo chmod 775 web/sites/default
else
    chmod 775 web/sites/default
fi

#############################################
# Composer + Drush
#############################################
$HOSTING_COMP update -W
$HOSTING_DR updb
$HOSTING_DR cr

#############################################
# Wykrycie systemu (Linux vs FreeBSD)
#############################################
SED_INPLACE="sed -i"
if [[ "$OSTYPE" == "freebsd"* ]] || [[ "$OSTYPE" == "darwin"* ]]; then
    SED_INPLACE="sed -i ''"
fi

#############################################
# 1. Blokada /user/login
#############################################
if [ "$LOGIN" = true ]; then
    if ! grep -q "RewriteRule \^user/login" "$HTACCESS_FILE"; then
        $SED_INPLACE '1i\
		# Blokada dostępu do /user/login\
		RewriteRule ^user/login$ - [F,L]\
		' "$HTACCESS_FILE"

        echo "Dodano blokadę /user/login."
    else
        echo "Blokada /user/login już istnieje."
    fi
fi

#############################################
# 2. Blokada WordPress
#############################################
if [ "$WP" = true ]; then
    if ! grep -E -q "wp-login|wp-admin" "$HTACCESS_FILE"; then
        $SED_INPLACE '/<\/IfModule>/i\
		# Blokuj WordPress\
		RewriteRule ^(wp-login|wp-admin|wp-config|wp-content|wp-includes) - [F,L]\
		' "$HTACCESS_FILE"

        echo "Dodano blokadę WordPress."
    else
        echo "Reguła WordPress już istnieje."
    fi
fi

#############################################
# 3. PHP 8.4
#############################################
if [ "$PHP84" = true ]; then
	PHP_RULE="AddType application/x-httpd-php84 .php"
	if grep -q "application/x-httpd-php" "$HTACCESS_FILE"; then
	  	echo "Reguła PHP już istnieje (lub inna wersja jest zdefiniowana) — pomijam."
	else
  		# Dodajemy pustą linię dla porządku i regułę na samym końcu pliku
  		echo "" >> "$HTACCESS_FILE"
  		echo "# Ustawienie wersji PHP 8.4" >> "$HTACCESS_FILE"
  		echo "$PHP_RULE" >> "$HTACCESS_FILE"
  		echo "Dodano obsługę PHP 8.4 na koniec pliku."
	fi
	
fi

echo "Gotowe!"

Spis treści: