| 
									
										
										
										
											2023-12-16 00:36:03 +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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PATH="$PATH:./node_modules/.bin" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # 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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Remove and generated or temporary files. | 
					
						
							|  |  |  | function build { | 
					
						
							|  |  |  |   cmd fractal build "${@}" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function ci:build { | 
					
						
							|  |  |  |   cp -v --no-clobber .env.example .env | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   docker network create traefik_proxy || true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   docker compose up -d | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   build | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Remove and generated or temporary files. | 
					
						
							|  |  |  | function clean { | 
					
						
							|  |  |  |   rm -fr build node_modules | 
					
						
							|  |  |  |   touch build/.keep | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Disable Git hooks. | 
					
						
							|  |  |  | function git-hooks:off { | 
					
						
							|  |  |  |   git config --unset core.hooksPath | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Enable Git hooks. | 
					
						
							|  |  |  | function git-hooks:on { | 
					
						
							|  |  |  |   git config core.hooksPath .githooks | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Create a new Fractal component. | 
					
						
							|  |  |  | function fractal:new { | 
					
						
							|  |  |  |   mkdir -p "components/${1}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   echo "name: ${1}" > "components/${1}/${1}.config.yml" | 
					
						
							|  |  |  |   echo "${1}" > "components/${1}/${1}.twig" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # 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" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Start the project. | 
					
						
							|  |  |  | function start { | 
					
						
							| 
									
										
										
										
											2023-12-18 21:04:45 +00:00
										 |  |  |       cp -v --no-clobber .env.example .env || true | 
					
						
							| 
									
										
										
										
											2023-12-16 00:36:03 +00:00
										 |  |  |     docker compose up -d | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function sync { | 
					
						
							|  |  |  |   clean | 
					
						
							|  |  |  |   fractal build | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   aws s3 sync "build/." s3://"${BUCKET_NAME}" \ | 
					
						
							|  |  |  |     --acl "public-read" \ | 
					
						
							|  |  |  |     --cache-control max-age=3600 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Run a command within the node container. | 
					
						
							|  |  |  | function cmd { | 
					
						
							|  |  |  |   docker compose exec node yarn "${@}" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Stop the project | 
					
						
							|  |  |  | function stop { | 
					
						
							|  |  |  |   docker compose down | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Execute yarn commands. | 
					
						
							|  |  |  | function yarn { | 
					
						
							|  |  |  |   cmd node yarn "${@}" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function _run { | 
					
						
							|  |  |  |   local service="${1}" | 
					
						
							|  |  |  |   local command="${2}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   docker compose run \ | 
					
						
							|  |  |  |     --entrypoint "${command}" \ | 
					
						
							|  |  |  |     --no-deps \ | 
					
						
							|  |  |  |     --rm \ | 
					
						
							|  |  |  |     -T \ | 
					
						
							|  |  |  |     "${service}" "${@}" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Include any local tasks. | 
					
						
							|  |  |  | [[ -e run.local ]] && source run.local | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TIMEFORMAT=$'\nTask completed in %3lR' | 
					
						
							|  |  |  | time "${@:-help}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # vim: ft=bash |