Scroll
Drush prikazuje grešku: Podržite bash kako bi 'source' radio, sa rezervnom opcijom na $0 ako se ovo ne pokreće pomoću bash-a
Imam ogroman broj konfiguracija i obično pokrećem import konfiguracija pomoću komande php -d memory_limit=-1 (onemogućava se limit memorije za PHP):
php -d memory_limit=-1 ./vendor/bin/drush config-import -y
Ali ovog puta sam dobio grešku:
# Podržite bash kako bi `source` radio, sa rezervnom opcijom na $0 ako se ovo ne pokreće pomoću bash-a
# https://stackoverflow.com/a/35006505/6512
selfArg="$BASH_SOURCE"
if [ -z "$selfArg" ]; then
selfArg="$0"
fi
self=$(realpath $selfArg 2> /dev/null)
if [ -z "$self" ]; then
self="$selfArg"
fi
dir=$(cd "${self%[/\\]*}" > /dev/null; cd ../drush/drush && pwd)
if [ -d /proc/cygdrive ]; then
case $(which php) in
$(readlink -n /proc/cygdrive)/*)
# Nalazimo se u Cygwin okruženju koristeći Windows php, pa se putanja mora prevesti
dir=$(cygpath -m "$dir");
;;
esac
fi
export COMPOSER_RUNTIME_BIN_DIR="$(cd "${self%[/\\]*}" > /dev/null; pwd)"
# Ako bash učitava (sourcing) ovaj fajl, moramo učitati i ciljni fajl
bashSource="$BASH_SOURCE"
if [ -n "$bashSource" ]; then
if [ "$bashSource" != "$0" ]; then
source "${dir}/drush" "$@"
return
fi
fi
"${dir}/drush" "$@"
Možete izbeći ovu grešku ako prosledite memory_limit=-1 kao php-options:
./vendor/bin/drush --php-options='-d memory_limit=-1' config-import -y
Zašto php -d memory_limit=-1 vendor/bin/drush …
sada izbacuje grešku
Forsiranjem fajla kroz php
, govorite PHP interpreteru da parsira bash skriptu:
php -d memory_limit=-1 ./vendor/bin/drush status
PHP tada pokušava da izvrši prvu liniju koja nije PHP (# Podržite bash …
) i odmah se ruši, prikazujući izvorni kod wrapper-a na ekranu. Upravo to je ispis koji ste i vi dobili. Ova promena je uvedena u Drush 13.3 i diskutovana je u glavnoj temi “Running drush as php script fails after updating from 13.2.0”