diff --git a/.env.example b/.env.example index 6ce2526..02148f4 100644 --- a/.env.example +++ b/.env.example @@ -12,3 +12,7 @@ export DRUSH_OPTIONS_URI="https://${COMPOSE_PROJECT_NAME}.docker.localhost" export MYSQL_DATABASE=app export MYSQL_PASSWORD=app export MYSQL_USER=app + +export DB_NAME="$MYSQL_DATABASE" +export DB_PASSWORD="$MYSQL_PASSWORD" +export DB_USER="$MYSQL_USER" diff --git a/run b/run index 50dfb04..7d7d3f7 100755 --- a/run +++ b/run @@ -39,22 +39,34 @@ function cmd { docker compose exec php "${@}" } +# Run coding standards checks. function coding-standards { cmd phpcs "${@}" } +# Execute any Composer command. function composer { _exec php composer "${@}" } +# Connect to the database. +function db { + [[ -f ".env" ]] && source .env + + docker compose exec database mysql -u"$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" +} + +# Execute any Drush command. function drush { _exec php drush "${@}" } +# Disable Git hooks. function git-hooks:off { git config --unset core.hooksPath } +# Enable Git hooks. function git-hooks:on { git config core.hooksPath .githooks } @@ -73,16 +85,19 @@ function install { drush site:install -y "${@}" } +# Lint the Dockerfile. function lint:dockerfile { docker container run --rm -i \ hadolint/hadolint hadolint --ignore DL3008 --ignore DL3022 --ignore DL3059 -t style "${@}" - < Dockerfile } +# Run code quality checks. function quality { coding-standards static-analysis } +# Start the project. function start { cp -v --no-clobber .env.example .env || true