#!/usr/bin/env bash # Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs. set -eu 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 { docker compose up -d build cmd tree /app/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 [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 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}" "${@}" } TIMEFORMAT=$'\nTask completed in %3lR' time "${@:-help}" # vim: ft=bash