mascarpone/Taskfile

59 lines
1.3 KiB
Bash
Executable file

#!/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 --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
}
"$@"