50 lines
1.1 KiB
Bash
50 lines
1.1 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
tmp_dir="$(mktemp -d)"
|
|
cleanup() {
|
|
rm -rf "$tmp_dir"
|
|
}
|
|
trap cleanup EXIT HUP INT TERM
|
|
|
|
cat > "$tmp_dir/composer.json" <<'JSON'
|
|
{
|
|
"name": "truckwash/composer-entrypoint-fixture",
|
|
"autoload": {
|
|
"classmap": [
|
|
"src/"
|
|
]
|
|
}
|
|
}
|
|
JSON
|
|
|
|
mkdir -p "$tmp_dir/src"
|
|
cat > "$tmp_dir/src/FixtureClass.php" <<'PHP'
|
|
<?php
|
|
|
|
class FixtureClass
|
|
{
|
|
}
|
|
PHP
|
|
|
|
COMPOSER_ALLOW_SUPERUSER=1 composer install \
|
|
--no-dev \
|
|
--prefer-dist \
|
|
--optimize-autoloader \
|
|
--no-interaction \
|
|
-d "$tmp_dir" >/dev/null 2>&1
|
|
|
|
printf '%s\n' '<?php' > "$tmp_dir/vendor/composer/autoload_real.php"
|
|
|
|
AUTO_COMPOSER_INSTALL=true \
|
|
APP_DIR="$tmp_dir" \
|
|
MODULE_DIR="$tmp_dir/no-module" \
|
|
LOG_FILE="$tmp_dir/composer-install.log" \
|
|
/usr/local/bin/docker-entrypoint.sh \
|
|
php -r "require \$argv[1]; echo class_exists('FixtureClass') ? 'autoload-ok' . PHP_EOL : 'autoload-missing' . PHP_EOL;" \
|
|
"$tmp_dir/vendor/autoload.php" >/dev/null
|
|
|
|
php -d display_errors=1 -r "require \$argv[1]; exit(class_exists('FixtureClass') ? 0 : 1);" "$tmp_dir/vendor/autoload.php"
|
|
|
|
echo "composer-entrypoint-autoload-recovery-ok"
|