banger/scripts
Thales Maciel fa95849f5a
Phase 5: kernel catalog publish flow + docs
Manual publish flow for the kernel catalog, designed for the current
no-CI, private-repo state of banger.

scripts/publish-kernel.sh <name>:
 - Reads $BANGER_KERNELS_DIR/<name>/ (the canonical layout produced by
   `banger kernel import`).
 - Pulls distro / arch / kernel_version from the local manifest.
 - Packages vmlinux + optional initrd.img + optional modules/ as
   <name>-<arch>.tar.zst with zstd -19.
 - Computes sha256 + size.
 - rclone copyto -> r2:banger-kernels/<file>.
 - HEAD-checks https://kernels.thaloco.com/<file> to catch
   public-access misconfig before declaring success.
 - jq-patches internal/kernelcat/catalog.json: replaces any prior
   entry with the same name, then sorts entries by name.
 - Prints next-step git+make commands; does not commit or rebuild
   automatically.

Environment overrides RCLONE_REMOTE / RCLONE_BUCKET / BASE_URL /
BANGER_KERNELS_DIR for non-default setups.

docs/kernel-catalog.md covers the architecture (embedded JSON +
external tarballs), end-user flow, the add/update/remove playbook,
naming and tarball-layout conventions, the trust model (sha256 in
embedded catalog catches transport/swap; no signing yet), and where
the bucket lives.

README.md gains a kernel-catalog example next to the existing image
register example. AGENTS.md points at publish-kernel.sh and the docs.

.gitignore now excludes .env so accidental drops of R2 credentials
don't follow into commits.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 15:56:56 -03:00
..
bench-create.sh Reorganize the source checkout layout 2026-03-21 17:22:57 -03:00
customize.sh Install claude and pi through mise 2026-04-13 18:29:02 -03:00
interactive.sh Add an experimental Alpine image flow 2026-03-21 20:25:55 -03:00
make-alpine-kernel.sh Add an experimental Alpine image flow 2026-03-21 20:25:55 -03:00
make-rootfs-alpine.sh Wait for real guest vsock health before opencode 2026-03-21 21:14:22 -03:00
make-rootfs-void.sh Install claude and pi through mise 2026-04-13 18:29:02 -03:00
make-rootfs.sh Remove runtime-bundle image dependencies 2026-03-21 18:34:53 -03:00
make-void-kernel.sh Fix void-kernel output directory setup 2026-04-01 19:42:30 -03:00
publish-kernel.sh Phase 5: kernel catalog publish flow + docs 2026-04-16 15:56:56 -03:00
register-alpine-image.sh Phase 3: banger kernel import bridges make-*-kernel.sh output 2026-04-16 14:53:49 -03:00
register-void-image.sh Phase 3: banger kernel import bridges make-*-kernel.sh output 2026-04-16 14:53:49 -03:00
verify.sh Rename experimental Void image to void 2026-04-01 20:15:28 -03:00