| 
									
										
										
										
											2023-12-15 15:22:28 +00:00
										 |  |  | #!/usr/bin/env bash | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set -o errexit | 
					
						
							|  |  |  | set -o pipefail | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # If we're running in CI we need to disable TTY allocation for docker compose | 
					
						
							|  |  |  | # commands that enable it by default, such as exec and run. | 
					
						
							|  |  |  | TTY="${TTY:-}" | 
					
						
							|  |  |  | if [[ ! -t 1 ]]; then | 
					
						
							|  |  |  |   TTY="-T" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Run automated tests as part of the Continuous Integration (CI) pipeline. | 
					
						
							|  |  |  | function ci:test { | 
					
						
							|  |  |  |   lint:dockerfile | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   docker compose version | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   docker network create traefik_proxy | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   cp --no-clobber .env.example .env | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   docker compose build --progress plain | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   docker compose up --detach | 
					
						
							|  |  |  |   docker compose logs | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   composer install --quiet --no-progress | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Run a command within the php container. | 
					
						
							|  |  |  | function cmd { | 
					
						
							|  |  |  |   docker compose exec php "${@}" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function composer { | 
					
						
							|  |  |  |   _exec php composer "${@}" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function drush { | 
					
						
							|  |  |  |   _exec php drush "${@}" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function git-hooks:off { | 
					
						
							|  |  |  |   git config --unset core.hooksPath | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function git-hooks:on { | 
					
						
							|  |  |  |   git config core.hooksPath .githooks | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Display a list of all available commands. | 
					
						
							|  |  |  | function help { | 
					
						
							|  |  |  |   printf "%s <task> [args]\n\nTasks:\n" "${0}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   compgen -A function | grep -v "^_" | cat -n | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   printf "\nExtended help:\n  Each task has comments for general usage\n" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-16 17:04:29 +00:00
										 |  |  | # Install Drupal. | 
					
						
							|  |  |  | function install { | 
					
						
							|  |  |  |   drush site:install -y "${@}" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-15 15:22:28 +00:00
										 |  |  | function lint:dockerfile { | 
					
						
							|  |  |  |   docker container run --rm -i \ | 
					
						
							|  |  |  |     hadolint/hadolint hadolint --ignore DL3008 --ignore DL3059 -t style "${@}" - < Dockerfile | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function start { | 
					
						
							| 
									
										
										
										
											2023-12-18 21:04:45 +00:00
										 |  |  |   cp -v --no-clobber .env.example .env || true | 
					
						
							| 
									
										
										
										
											2023-12-15 15:22:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   docker compose up -d | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function stop { | 
					
						
							|  |  |  |   docker compose down | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function test:commit { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   quality | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function _exec { | 
					
						
							|  |  |  |   docker compose exec ${TTY} "${@}" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function _run { | 
					
						
							|  |  |  |   local service="${1}" | 
					
						
							|  |  |  |   local command="${2}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   docker compose run \ | 
					
						
							|  |  |  |     --entrypoint "${command}" \ | 
					
						
							|  |  |  |     --no-deps \ | 
					
						
							|  |  |  |     --rm \ | 
					
						
							|  |  |  |     ${TTY} \ | 
					
						
							|  |  |  |     "${service}" "${@}" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Include any local tasks. | 
					
						
							|  |  |  | [[ -e run.local ]] && source run.local | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TIMEFORMAT=$'\nTask completed in %3lR' | 
					
						
							|  |  |  | time "${@:-help}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # vim: ft=bash |