113 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/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 {
 | |
|       cp -v --no-clobber .env.example .env || true
 | |
|     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
 |