#!/usr/bin/env bash set -o nounset set -o pipefail function clean { rm -fr output_*/ source/build/ } function generate { local args=() if [[ "${APP_ENV:-}" == "production" ]]; then args=(--env="prod") else args=(--server --watch) fi sculpin generate "${args[@]}" } 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" } function npm:build:css { local args=() if [[ "${NODE_ENV:-}" == "production" ]]; then args=(--minify) else args=(--watch) fi npx tailwindcss \ --config assets/tailwind.config.ts \ --output source/build/tailwind.css "${args[@]}" } function publish { export NODE_ENV=production export APP_ENV=production git stash clean npm:build:css generate rsync --archive --verbose --compress --update --delete \ output_prod/ ssh.oliverdavies.uk:/srv/oliverdavies.uk-sculpin git stash pop } TIMEFORMAT="Task completed in %3lR" time "${@:-help}"