echo "### Entering abra.sh ..." export ENTRYPOINT_CONF_VERSION=v1 export DB_PASSWORD=$(cat /run/secrets/db_password) ### Helpers # these commands can be run via: # abra app cmd open-inventory.example.net app $commandName # where $commandName = {clear_cache, initial_setup, ...} initial_setup() { cd /app/ # clear config cache, where a previous invalid APP_KEY might still be present clear_cache run_migrations create_first_admin_user } run_migrations() { echo "DB migrations status:" php artisan migrate:status echo "Starting DB migrations..." php artisan migrate } clear_cache() { php artisan cache:clear php artisan route:clear php artisan config:clear php artisan view:clear } create_first_admin_user() { echo "Creating the first admin user..." read -rp "Enter admin name: " ADMIN_NAME read -rp "Enter admin email: " ADMIN_EMAIL while true; do read -rsp "Enter admin password: " ADMIN_PASSWORD echo read -rsp "Confirm admin password: " ADMIN_PASSWORD_CONFIRM echo if [ "$ADMIN_PASSWORD" = "$ADMIN_PASSWORD_CONFIRM" ]; then break else echo "Passwords do not match. Please try again." fi done php artisan user:first "${ADMIN_NAME}" "${ADMIN_EMAIL}" "${ADMIN_PASSWORD}" } export_dot_env() { env_file_path=$1 if [ ! -f "$env_file_path" ]; then echo "Error: .env file not found at $env_file_path" exit 1 fi while IFS='=' read -r env_key env_value do export "$env_key=$env_value" echo "Exported: $env_key" done < "$env_file_path" }