scaffold-python-cli
LOW
maintainer alrayyes
0 votes
scanned 2026-09-01 13:48:42.149435
Why flagged
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
Triggered rules
Low
Few votes, recently uploaded
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
PKGBUILD
1
# Maintainer: Ryan Kes <ryan@andthensome.nl>
2
#
3
# Builds for real from the tagged release tarball, against Arch's own
4
# python-* packages — not the frozen-binary approach the .deb/.rpm path
5
# uses. AUR convention expects a real build the same way Nix's
6
# flake.nix does, and Arch's python-* packages track upstream closely
7
# enough that the naming/version-skew problem the .deb/.rpm path
8
# sidesteps with a frozen binary doesn't apply here.
9
#
10
# Lives in this repo only for reference/review — a real AUR package for
11
# a project stamped from this template is maintained in its own git repo
12
# (ssh://aur@aur.archlinux.org/<pkgname>.git), pushed there by the
13
# release job, not from here. `pkgver`/`sha256sums` below track this
14
# template repo's own dev placeholder until a project stamped from it
15
# renames the package and cuts its first real release.
16
pkgname=scaffold-python-cli
17
pkgver=0.3.0
18
pkgrel=1
19
pkgdesc="GitHub template for a Python/uv/Typer command-line tool"
20
arch=('any')
21
url="https://github.com/alrayyes/scaffold-python-cli"
22
# No standard licence chosen for this template itself — see LICENSE. A
23
# project stamped from it names its own licence here once it picks one.
24
license=('custom')
25
depends=(
26
'python'
27
'python-platformdirs'
28
'python-tomli-w'
29
'python-typer'
30
)
31
makedepends=(
32
'python-build'
33
'python-installer'
34
'python-wheel'
35
'python-uv-build'
36
'python-click-man'
37
)
38
_tag="scaffold-python-cli-v${pkgver}"
39
_srcdir="scaffold-python-cli-${_tag}"
40
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/alrayyes/scaffold-python-cli/archive/${_tag}.tar.gz")
41
# No release has been tagged yet — nothing at this URL for a real
42
# checksum to pin. The release job's own "Bump pkgver and the
43
# release-tarball checksum" step (see .github/workflows/release.yml)
44
# overwrites this with a real one against the actual tag before it
45
# builds and pushes to the AUR; SKIP only matters for this committed
46
# reference copy until the first release cuts.
47
sha256sums=('5fe80ecf501788d36e58067c886631166e666a846b8e944e755b0bcf8a4e9b24')
48
49
build() {
50
cd "$_srcdir"
51
python -m build --wheel --no-isolation
52
}
53
54
package() {
55
cd "$_srcdir"
56
python -m installer --destdir="$pkgdir" dist/*.whl
57
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
58
59
# One man page per command and subcommand, generated from the source
60
# tree rather than the installed package — this project's runtime
61
# dependencies are already on the system by this point (makepkg
62
# installs depends= before build()/package() run), so the CLI is
63
# importable straight off PYTHONPATH without a separate install step.
64
# Matches flake.nix's approach for the same reason
65
# scripts/generate-man.sh doesn't work here either: that script shells
66
# out to `uv run`, which isn't part of this build at all.
67
local mandir
68
mandir="$(mktemp -d)"
69
PYTHONPATH="src" python -c "
70
import datetime
71
import typer.main
72
from click_man.core import write_man_pages
73
from scaffold_python_cli.cli import app
74
write_man_pages('scaffold-python-cli', typer.main.get_command(app), version='${pkgver}', target_dir='${mandir}', date=datetime.date.today())
75
"
76
gzip -9 "$mandir"/*.1
77
install -Dm644 -t "$pkgdir/usr/share/man/man1" "$mandir"/*.1.gz
78
rm -rf "$mandir"
79
}
80
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-01 13:48:42 | Low | 1 |