mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-28 23:01:29 +00:00
98 lines
3.4 KiB
Bash
98 lines
3.4 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
|
|
|
|
if [ ! -f '_install/install.lock' ]; then
|
|
echo "Creating folders structure"
|
|
mkdir -p /app/storage/app/public
|
|
mkdir -p "$COVERS_PATH/anime"
|
|
mkdir -p "$COVERS_PATH/audio"
|
|
mkdir -p "$COVERS_PATH/audiosample"
|
|
mkdir -p "$COVERS_PATH/book"
|
|
mkdir -p "$COVERS_PATH/console"
|
|
mkdir -p "$COVERS_PATH/games"
|
|
mkdir -p "$COVERS_PATH/movies"
|
|
mkdir -p "$COVERS_PATH/music"
|
|
mkdir -p "$COVERS_PATH/preview"
|
|
mkdir -p "$COVERS_PATH/sample"
|
|
mkdir -p "$COVERS_PATH/tvrage"
|
|
mkdir -p "$COVERS_PATH/tvshows"
|
|
mkdir -p "$COVERS_PATH/video"
|
|
mkdir -p "$COVERS_PATH/xxx"
|
|
mkdir -p "$PATH_TO_NZBS"
|
|
mkdir -p "$TEMP_UNRAR_PATH"
|
|
mkdir -p "$TEMP_UNZIP_PATH"
|
|
# Set permissions for storage and bootstrap/cache directories
|
|
echo "Setting permissions on storage and bootstrap/cache directories..."
|
|
chmod -R 775 bootstrap/cache
|
|
chmod -R 777 storage resources
|
|
chown -R www-data:www-data storage bootstrap/cache resources
|
|
|
|
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
|
|
|
|
echo "Caching spatie/laravel-data structures..."
|
|
php artisan data:cache-structures || true
|
|
|
|
# Run Laravel-specific post-installation commands
|
|
echo "NNTmux installation..."
|
|
php artisan nntmux:install --yes
|
|
|
|
if [ "${ELASTICSEARCH_ENABLED}" == "true" ]; then
|
|
echo "Elasticsearch initialisation"
|
|
php artisan nntmux:create-es-indexes
|
|
php artisan nntmux:populate --elastic --releases
|
|
php artisan nntmux:populate --elastic --predb
|
|
else
|
|
echo "Manticore initialisation"
|
|
php artisan nntmux:populate --manticore --releases
|
|
php artisan nntmux:populate --manticore --predb
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# Run the PHP entry point with arguments
|
|
exec docker-php-entrypoint "$@"
|