git/grrs/main

chore: add Arch Linux packaging, justfile, add Arch Linux to README

added PKGBUILD and .SRCINFO files for stable (grrs) and git (grrs-git) AUR packages. added justfile to automake cargo builds, makepkg cleanup, and radicle tags. updated README with temporary makepkg installation instructions. added more makepkg build artifacts to .gitignore. closes 4de1907
diff --git a/.gitignore b/.gitignore
index 2d5df85..aee8f7f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,10 @@
+pkg/grrs/src/
+pkg/grrs/pkg/
+pkg/grrs/grrs/
+pkg/grrs/*.tar.*
+pkg/grrs-git/src/
+pkg/grrs-git/pkg/
+pkg/grrs-git/grrs/
+pkg/grrs-git/*.tar.*
/target
.direnv
diff --git a/README.md b/README.md
index e351482..825ecb8 100644
--- a/README.md
+++ b/README.md
@@ -32,6 +32,24 @@ You can run it directly without installing:
nix run "git+rad://z3dnwE7h9y4ndGdqeafNLP8eDPn3Y#grrs"
```
+### Arch Linux
+
+`grrs` will be officially available on the AUR once the current registration freeze is lifted. In the meantime, you can build and install it directly using the provided `PKGBUILD` files.
+
+**For the stable release:**
+```sh
+git clone https://rosa.radicle.network/rad:z3dnwE7h9y4ndGdqeafNLP8eDPn3Y.git grrs
+cd grrs/pkg/grrs
+makepkg -si
+```
+
+**For the bleeding-edge git version:**
+```sh
+git clone https://rosa.radicle.network/rad:z3dnwE7h9y4ndGdqeafNLP8eDPn3Y.git grrs
+cd grrs/pkg/grrs-git
+makepkg -si
+```
+
## Controls
- `l` - Like/Unlike current song
- `m` - Mute/Unmute stream
diff --git a/justfile b/justfile
new file mode 100644
index 0000000..3e38070
--- /dev/null
+++ b/justfile
@@ -0,0 +1,35 @@
+default:
+ @just --list
+
+# build the dev binary
+build:
+ cargo build
+
+# run the test suite
+test:
+ cargo test
+
+# clean cargo and nuke all the temporary makepkg folders
+clean:
+ cargo clean
+ sudo rm -rf pkg/grrs/{src,pkg,grrs} pkg/grrs/*.tar.*
+ sudo rm -rf pkg/grrs-git/{src,pkg,grrs} pkg/grrs-git/*.tar.*
+
+# generate updated .SRCINFO files for both arch packages
+srcinfo:
+ cd pkg/grrs && makepkg --printsrcinfo > .SRCINFO
+ cd pkg/grrs-git && makepkg --printsrcinfo > .SRCINFO
+
+# test build the stable arch package locally
+test-pkg:
+ cd pkg/grrs && makepkg -si
+
+# test build the bleeding-edge arch package locally
+test-pkg-git:
+ cd pkg/grrs-git && makepkg -si
+
+# cut a new git tag and explicitly broadcast it to the radicle network
+publish-tag version:
+ git tag -a v{{ version }} -m "Release v{{ version }}"
+ git push rad --tags
+ rad sync --announce
diff --git a/pkg/grrs-git/.SRCINFO b/pkg/grrs-git/.SRCINFO
new file mode 100644
index 0000000..f81f21e
--- /dev/null
+++ b/pkg/grrs-git/.SRCINFO
@@ -0,0 +1,21 @@
+pkgbase = grrs-git
+ pkgdesc = A minimal TUI for Gensokyo Radio
+ pkgver = r23.6c64784
+ pkgrel = 1
+ url = https://radicle.network/nodes/git.myn.sh/grrs
+ arch = x86_64
+ license = Unlicense
+ makedepends = cargo
+ makedepends = git
+ makedepends = cmake
+ depends = gcc-libs
+ depends = glibc
+ depends = mpv
+ provides = grrs
+ conflicts = grrs
+ options = !lto
+ options = !debug
+ source = grrs::git+https://rosa.radicle.network/rad:z3dnwE7h9y4ndGdqeafNLP8eDPn3Y.git
+ sha256sums = SKIP
+
+pkgname = grrs-git
diff --git a/pkg/grrs-git/PKGBUILD b/pkg/grrs-git/PKGBUILD
new file mode 100644
index 0000000..8e73235
--- /dev/null
+++ b/pkg/grrs-git/PKGBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Myn <hello@myn.sh>
+
+pkgname=grrs-git
+pkgver=r23.6c64784
+pkgrel=1
+pkgdesc="A minimal TUI for Gensokyo Radio"
+arch=('x86_64')
+url="https://radicle.network/nodes/git.myn.sh/grrs"
+license=('Unlicense')
+depends=('gcc-libs' 'glibc' 'mpv')
+makedepends=('cargo' 'git' 'cmake')
+options=('!lto' '!debug')
+provides=('grrs')
+conflicts=('grrs')
+source=("grrs::git+https://rosa.radicle.network/rad:z3dnwE7h9y4ndGdqeafNLP8eDPn3Y.git")
+sha256sums=('SKIP')
+
+pkgver() {
+ cd "$srcdir/grrs"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"
+}
+
+build() {
+ cd "$srcdir/grrs"
+ export RUSTUP_TOOLCHAIN=stable
+ export CARGO_TARGET_DIR=target
+ cargo build --frozen --release
+}
+
+check() {
+ cd "$srcdir/grrs"
+ export RUSTUP_TOOLCHAIN=stable
+ cargo test --frozen
+}
+
+package() {
+ cd "$srcdir/grrs"
+ install -Dm755 "target/release/grrs" "$pkgdir/usr/bin/grrs"
+ install -Dm644 "assets/grrs.desktop" "$pkgdir/usr/share/applications/grrs.desktop"
+ install -Dm644 "LICENSE" "$pkgdir/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/pkg/grrs/.SRCINFO b/pkg/grrs/.SRCINFO
new file mode 100644
index 0000000..4a752f6
--- /dev/null
+++ b/pkg/grrs/.SRCINFO
@@ -0,0 +1,21 @@
+pkgbase = grrs
+ pkgdesc = A minimal TUI for Gensokyo Radio
+ pkgver = 0.1.6
+ pkgrel = 1
+ url = https://radicle.network/nodes/git.myn.sh/grrs
+ arch = x86_64
+ license = Unlicense
+ makedepends = cargo
+ makedepends = git
+ makedepends = cmake
+ depends = gcc-libs
+ depends = glibc
+ depends = mpv
+ provides = grrs
+ conflicts = grrs-git
+ options = !lto
+ options = !debug
+ source = grrs::git+https://rosa.radicle.network/rad:z3dnwE7h9y4ndGdqeafNLP8eDPn3Y.git#commit=6c64784929618c0b8e8c7adf929d4a8c9efea17e
+ sha256sums = SKIP
+
+pkgname = grrs
diff --git a/pkg/grrs/PKGBUILD b/pkg/grrs/PKGBUILD
new file mode 100644
index 0000000..82590ee
--- /dev/null
+++ b/pkg/grrs/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Myn <hello@myn.sh>
+
+pkgname=grrs
+pkgver=0.1.6
+pkgrel=1
+pkgdesc="A minimal TUI for Gensokyo Radio"
+arch=('x86_64')
+url="https://radicle.network/nodes/git.myn.sh/grrs"
+license=('Unlicense')
+depends=('gcc-libs' 'glibc' 'mpv')
+makedepends=('cargo' 'git' 'cmake')
+options=('!lto' '!debug')
+provides=('grrs')
+conflicts=('grrs-git')
+source=("grrs::git+https://rosa.radicle.network/rad:z3dnwE7h9y4ndGdqeafNLP8eDPn3Y.git#commit=6c64784929618c0b8e8c7adf929d4a8c9efea17e")
+sha256sums=('SKIP')
+
+build() {
+ cd "$srcdir/grrs"
+ export RUSTUP_TOOLCHAIN=stable
+ export CARGO_TARGET_DIR=target
+ cargo build --frozen --release
+}
+
+check() {
+ cd "$srcdir/grrs"
+ export RUSTUP_TOOLCHAIN=stable
+ cargo test --frozen
+}
+
+package() {
+ cd "$srcdir/grrs"
+ install -Dm755 "target/release/grrs" "$pkgdir/usr/bin/grrs"
+ install -Dm644 "assets/grrs.desktop" "$pkgdir/usr/share/applications/grrs.desktop"
+ install -Dm644 "LICENSE" "$pkgdir/usr/share/licenses/${pkgname}/LICENSE"
+}