#!/usr/bin/env bash playwright:local() { bash e2e/Taskfile playwright:local "$@" } playwright:ui() { bash e2e/Taskfile playwright:ui "$@" } refresh_sqlx_db() { rm -f some_user.db for migration in migrations/each_user/*.sql; do echo "Applying $migration..." echo "BEGIN TRANSACTION;$(cat "$migration");COMMIT TRANSACTION;"\ | sqlite3 some_user.db done } _env() { refresh_sqlx_db > /dev/null DATABASE_URL=sqlite:some_user.db \ CACHE_BUST_ASSETS_DIR=static \ "$@" } _cargo() { _env cargo "$@" } edit() { _env nvim } deploy_to_server() { where="$1" _cargo build --release rsync -v -essh ./target/release/mascarpone "$where:~" \ && rsync -rav -essh ./hashed_static "$where:~/" \ && ssh -t "$where" "sudo mv -f mascarpone /usr/bin/ && sudo rm -rf /var/local/mascarpone/hashed_static && sudo mv -f hashed_static /var/local/mascarpone/ && sudo systemctl restart mascarpone" } dev() { find src static migrations | entr -ccdr ./Taskfile _cargo run -- serve } release() { set -euo pipefail bash e2e/Taskfile playwright:ci _cargo test new_tag=$(git-cliff --unreleased --bumped-version) git tag -m "$new_tag" "$new_tag" cargo set-version "${new_tag#v}" mv CHANGELOG.md CHANGELOG.old cat <(git cliff) <(printf "\n") CHANGELOG.old > CHANGELOG.md rm CHANGELOG.old } "$@"