mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-09-01 02:38:55 +00:00
cbf63acc6b
Moved .env file creation logic to execute earlier in the script for better clarity and structure. Ensures .env is generated before running subsequent commands, improving maintainability.
61 lines
2.0 KiB
Bash
61 lines
2.0 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
# Create .env file if it doesn't exist
|
|
if [ ! -f .env ]; then
|
|
echo "Creating .env file from environment variables..."
|
|
envsubst < .env.dist > .env
|
|
fi
|
|
if [ "$1" != 'php' ] && [ "$1" != 'sh' ]; then
|
|
# Install dependencies if not already installed
|
|
if [ ! -d 'vendor/' ]; then
|
|
echo "Installing dependencies via Composer..."
|
|
composer install --prefer-dist --no-progress --no-interaction
|
|
fi
|
|
|
|
|
|
# Check and wait for the database to be ready
|
|
if grep -q ^DB_HOST= .env; then
|
|
echo "Waiting for the database to be ready..."
|
|
ATTEMPTS_LEFT_TO_REACH_DATABASE=60
|
|
until [ $ATTEMPTS_LEFT_TO_REACH_DATABASE -eq 0 ] || DATABASE_ERROR=$(php artisan db:show 2>&1); do
|
|
if [ $? -ne 0 ]; then
|
|
# Stop attempting in case of an error
|
|
ATTEMPTS_LEFT_TO_REACH_DATABASE=$((ATTEMPTS_LEFT_TO_REACH_DATABASE - 1))
|
|
echo "Database not ready yet. Attempts left: $ATTEMPTS_LEFT_TO_REACH_DATABASE."
|
|
sleep 1
|
|
else
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ $ATTEMPTS_LEFT_TO_REACH_DATABASE -eq 0 ]; then
|
|
echo "Failed to connect to the database:"
|
|
echo "$DATABASE_ERROR"
|
|
exit 1
|
|
else
|
|
echo "Database is now ready."
|
|
fi
|
|
fi
|
|
|
|
echo "Clearing application cache..."
|
|
php artisan cache:clear
|
|
php artisan config:clear
|
|
php artisan route:clear
|
|
php artisan view:clear
|
|
|
|
echo "Caching configuration and routes..."
|
|
php artisan config:cache
|
|
php artisan route:cache
|
|
|
|
# Run Laravel-specific post-installation commands
|
|
echo "NNTmux installation..."
|
|
php artisan nntmux:install --yes
|
|
# Set permissions for storage and bootstrap/cache directories
|
|
echo "Setting permissions on storage and bootstrap/cache directories..."
|
|
chmod -R 775 storage bootstrap/cache
|
|
chown -R www-data:www-data storage bootstrap/cache
|
|
fi
|
|
|
|
# Run the PHP entry point with arguments
|
|
exec docker-php-entrypoint "$@"
|