AUR packages for the shellcell CLIs, managed as a mono-repo (one subdir per package) and published to the Arch User Repository.
Each tool ships two packages: a canonical from-source build and a fast
prebuilt -bin. Pick whichever you prefer — provides/conflicts keep them
mutually exclusive.
| Tool | From source | Prebuilt |
|---|---|---|
| cnvrt | cnvrt |
cnvrt-bin |
| exex | exex |
exex-bin |
| snailrace | snailrace |
snailrace-bin |
| ttysvg | ttysvg |
ttysvg-bin |
Install with any AUR helper, e.g. paru -S ttysvg (compiles) or
paru -S ttysvg-bin (prebuilt).
<name>builds from the GitHub release tag following the Arch Go guidelines (PIE + external linking;depends=(glibc)). Needs the Go toolchain at install time; namcap-clean.<name>-binrepackages the upstream release tarball (binary + man page + bash/zsh/fish completions + LICENSE). Instant install. The-binsuffix is required by AUR rules whenever prebuilt binaries are shipped and sources exist.
Both install the binary, man page, and shell completions to the standard paths.
main is the source of truth. A push that changes a package's PKGBUILD is
mirrored to that package's AUR git repo.
project release (vX.Y.Z) ──repository_dispatch(aur-bump)──▶ publish.yml
nvcheck.yml (weekly) ──repository_dispatch(aur-bump)──▶ publish.yml
│
bump.sh: set pkgver, updpkgsums, regen .SRCINFO │
build-test in an archlinux container (makepkg + namcap) │
commit to main, then push PKGBUILD + .SRCINFO to the AUR ◀┘
publish.yml(dispatch / manual): bumps one package directory, build-tests it, and publishes. A release fires oneaur-bumpper variant, so both<name>and<name>-binupdate automatically.nvcheck.yml(scheduled): runs nvchecker (packages.toml) and, for any package whose upstream release is newer than the committedpkgver, fires the sameaur-bumpdispatch — a safety net for a release whose dispatch was missed.ci.yml(PRs/pushes): build-tests every package withmakepkg+namcap(compiling and runninggo testfor the source ones) and fails if any.SRCINFOis out of sync with itsPKGBUILD.
cnvrt/ cnvrt-bin/ # one dir per AUR package (pkgbase = dir name),
exex/ exex-bin/ # each with PKGBUILD + .SRCINFO
snailrace/ snailrace-bin/
ttysvg/ ttysvg-bin/
packages.toml # nvchecker sources (all 8 packages)
scripts/bump.sh # set pkgver, updpkgsums, regen .SRCINFO
.github/workflows/ # ci.yml, publish.yml, nvcheck.yml
On an Arch system with base-devel + pacman-contrib (and go for the
source packages):
cd ttysvg # or ttysvg-bin
makepkg -si # build and install
namcap PKGBUILD *.pkg.tar.zst # lint
../scripts/bump.sh ttysvg 0.1.3 # bump helper (edits PKGBUILD + .SRCINFO)Optionally aurpublish setup (see
aurpublish) installs git hooks
that regenerate .SRCINFO and validate sums on commit. CI regenerates
.SRCINFO explicitly, so hooks are not required.
-binpackages ship the upstream binary as-is (CGO_ENABLED=0, stripped, non-PIE), sonamcapwarnslacks PIE/lacks FULL RELRO. This is expected and accepted for-bin. The from-source packages link with-linkmode=externaland are namcap-clean.
- An AUR account with the CI SSH public key added (Account → My Account).
- The 8 package names (
cnvrt,cnvrt-bin, …ttysvg,ttysvg-bin) free on the AUR — verified free; the first publish registers them. - Secrets:
AUR_SSH_PRIVATE_KEY(this repo); the orgTAP_GITHUB_TOKENPAT extended to covershellcell/aur(used by the release dispatch and bynvcheck.ymlto fire dispatches). aur-bumpdispatch job added to each project's release workflow (fires one dispatch per variant).