blob: 2ac380051aa9dfc6cf1dcb885213c7c9ad464df5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# Maintainer: Kaj Kowalski <info@kajkowalski.nl>
# Prebuilt package: installs the release binaries straight from the GitHub
# release `.tar.gz` assets (no compile). `pkgver`/`sha256sums_*` are rewritten
# by CI (.github/workflows/aur-release.yml) on every release; the values below
# are only a checked-in reference snapshot.
pkgname=runner-run-bin
pkgver=0.21.0
pkgrel=1
pkgdesc='Universal project task runner (prebuilt binary)'
arch=('x86_64' 'aarch64' 'armv7h')
url='https://github.com/kjanat/runner'
license=('MIT')
# Prebuilt binaries are dynamically linked against glibc + libgcc_s.
depends=('glibc' 'gcc-libs')
provides=('runner-run')
conflicts=('runner-run')
# Per-arch release tarballs. Basenames already carry the Rust triple, so
# each arch downloads to a distinct file, no `name::` rename needed (and
# none with a literal arch that namcap would flag).
_url="https://github.com/kjanat/runner/releases/download/v$pkgver/runner-v$pkgver"
# Arch-independent man pages (one archive for all arches).
source=("$_url-man.tar.gz")
source_x86_64=("$_url-x86_64-unknown-linux-gnu.tar.gz")
source_aarch64=("$_url-aarch64-unknown-linux-gnu.tar.gz")
source_armv7h=("$_url-armv7-unknown-linux-gnueabihf.tar.gz")
sha256sums=('7c720adc7c8a39f227415603c4b3bf9c905c8f7d74b4199e378d2c91f73b845d')
sha256sums_x86_64=('f80c90408127ef139c85e9795acf3b04eb5a7678bc7c32d975b3c3bbaedc062b')
sha256sums_aarch64=('754d6247701c8765c3256faa5aeae56590aa77c3c00be04b89ee1c0f809a2831')
sha256sums_armv7h=('cfef0f5141ceb11cbbd2e89ef013f46c301108edf065c53124fa1ba7c69a3b8e')
package() {
# Archives are flat: runner, run, README.md, LICENSE at the root.
install -Dm0755 -t "$pkgdir/usr/bin/" runner run
install -Dm0644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
install -Dm0644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
# Shell completions. `runner completions <shell>` is the only generator
# (a `run completions` subcommand does not exist) and emits a single
# stream covering BOTH `runner` and `run` with the path of the invoking
# `runner` binary baked in via `current_exe()`. Strategy:
# 1. Generate the combined stream for each shell.
# 2. sed-rewrite the baked $srcdir paths to /usr/bin/{runner,run}.
# Longer match first, `$srcdir/run` is a prefix of `$srcdir/runner`.
# 3. awk-split bash + zsh on their start-of-line boundaries so each
# command gets its own autoload file. Fish stays as one file.
local g="$srcdir/_compl"
mkdir -p "$g"
./runner completions bash >"$g/bash.combined"
./runner completions zsh >"$g/zsh.combined"
./runner completions fish >"$g/fish.combined"
./runner completions pwsh >"$g/runner.ps1"
sed -i -e "s|$srcdir/runner|/usr/bin/runner|g" \
-e "s|$srcdir/run|/usr/bin/run|g" \
"$g/bash.combined" "$g/zsh.combined" "$g/fish.combined" "$g/runner.ps1"
awk -v r="$g/runner.bash" -v n="$g/run.bash" \
'/^_clap_complete_run\(\) \{$/ {o=n} {print > (o?o:r)}' "$g/bash.combined"
awk -v r="$g/_runner" -v n="$g/_run" \
'/^#compdef run$/ {o=n} {print > (o?o:r)}' "$g/zsh.combined"
install -Dm0644 "$g/runner.bash" "$pkgdir/usr/share/bash-completion/completions/runner"
install -Dm0644 "$g/run.bash" "$pkgdir/usr/share/bash-completion/completions/run"
install -Dm0644 "$g/_runner" "$pkgdir/usr/share/zsh/site-functions/_runner"
install -Dm0644 "$g/_run" "$pkgdir/usr/share/zsh/site-functions/_run"
# Fish autoloads completion files by command basename; `runner.fish` is
# sourced on `runner<TAB>` but never on `run<TAB>`. Install the (identical)
# combined stream under both names so each command's first tab works in
# a fresh shell, without depending on session order.
install -Dm0644 "$g/fish.combined" "$pkgdir/usr/share/fish/vendor_completions.d/runner.fish"
install -Dm0644 "$g/fish.combined" "$pkgdir/usr/share/fish/vendor_completions.d/run.fish"
# PowerShell has no system autoload dir on Linux; pwsh users dot-source
# this file from their `$PROFILE`: . /usr/share/runner/runner.ps1
install -Dm0644 "$g/runner.ps1" "$pkgdir/usr/share/runner/runner.ps1"
# Man pages from the -man.tar.gz source (flat *.1 in $srcdir). zipman gzips.
install -Dm0644 -t "$pkgdir/usr/share/man/man1/" "$srcdir"/*.1
}
|