2024-01-03 20:00:00 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
set -o nounset
|
|
|
|
set -o pipefail
|
|
|
|
|
|
|
|
function clean {
|
2024-01-03 20:00:00 +00:00
|
|
|
rm -fr output_*/ source/build/
|
2024-01-03 20:00:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function generate {
|
|
|
|
local args=()
|
|
|
|
|
|
|
|
if [[ "${APP_ENV:-}" == "production" ]]; then
|
|
|
|
args=(--env="prod")
|
|
|
|
else
|
|
|
|
args=(--server --watch)
|
|
|
|
fi
|
|
|
|
|
|
|
|
sculpin generate "${args[@]}"
|
|
|
|
}
|
|
|
|
|
|
|
|
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"
|
|
|
|
}
|
|
|
|
|
2024-01-03 20:00:00 +00:00
|
|
|
function npm:build:css {
|
|
|
|
local args=()
|
|
|
|
|
|
|
|
if [[ "${NODE_ENV:-}" == "production" ]]; then
|
|
|
|
args=(--minify)
|
|
|
|
else
|
|
|
|
args=(--watch)
|
|
|
|
fi
|
|
|
|
|
2024-01-03 20:00:00 +00:00
|
|
|
npx tailwindcss \
|
|
|
|
--config assets/tailwind.config.ts \
|
2024-01-03 20:00:00 +00:00
|
|
|
--output source/build/tailwind.css "${args[@]}"
|
|
|
|
}
|
|
|
|
|
2024-01-03 20:00:00 +00:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2024-01-03 20:00:00 +00:00
|
|
|
TIMEFORMAT="Task completed in %3lR"
|
|
|
|
time "${@:-help}"
|