Rules-based browser launcher for TUI + GNOME. switchyard.aly.codes
tui gome bowser go
0

Configure Feed

Select the types of activity you want to include in your feed.

justfile: add release workflow

Aly Raffauf (Apr 19, 2026, 8:32 AM EDT) 5c2c3162 3f96db09

+50
+50
justfile
··· 65 65 # Build and install Flatpak (development version) 66 66 flatpak: 67 67 flatpak-builder --user --install --force-clean build-dir flatpak/{{APPID}}.Devel.yml 68 + 69 + # Cut a new release: bump version, commit, tag, and push master + tag 70 + release version: 71 + #!/usr/bin/env bash 72 + set -euo pipefail 73 + version="{{version}}" 74 + tag="v${version}" 75 + metainfo="data/{{APPID}}.metainfo.xml" 76 + 77 + if ! [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.-]+)?(\+[0-9A-Za-z.-]+)?$ ]]; then 78 + echo "error: '$version' is not valid semver (expected X.Y.Z)" >&2 79 + exit 1 80 + fi 81 + 82 + branch="$(git symbolic-ref --short HEAD)" 83 + if [ "$branch" != "master" ]; then 84 + echo "error: must be on master (currently on $branch)" >&2 85 + exit 1 86 + fi 87 + 88 + # Allow src/app.go and the metainfo file to be dirty; nothing else. 89 + dirty="$(git status --porcelain -- ':!src/app.go' ":!${metainfo}")" 90 + if [ -n "$dirty" ]; then 91 + echo "error: working tree has changes outside src/app.go and ${metainfo}:" >&2 92 + echo "$dirty" >&2 93 + exit 1 94 + fi 95 + 96 + if git rev-parse --verify --quiet "refs/tags/${tag}" >/dev/null; then 97 + echo "error: tag ${tag} already exists" >&2 98 + exit 1 99 + fi 100 + 101 + if ! grep -q "<release version=\"${version}\"" "${metainfo}"; then 102 + echo "error: ${metainfo} has no <release version=\"${version}\"> entry" >&2 103 + echo " add a release entry with notes before running 'just release'" >&2 104 + exit 1 105 + fi 106 + 107 + sed -i -E "s/^(\s*Version\s*=\s*)\"[^\"]+\"/\1\"${version}\"/" src/app.go 108 + if ! grep -qE "Version\s*=\s*\"${version}\"" src/app.go; then 109 + echo "error: failed to update Version in src/app.go" >&2 110 + exit 1 111 + fi 112 + 113 + git add src/app.go "${metainfo}" 114 + git commit -m "update for ${tag}" 115 + git tag -a "${tag}" -m "${tag}" 116 + git push origin master 117 + git push origin "${tag}"