feat: nix flake with package, NixOS module and dev shell

nix run / nix build produce a wrapped CLI that pins libpcsclite by store
path, the package build runs the test suite (so nix flake check is CI),
programs.boltcard-writer.enable installs it and turns on pcscd, and
nix develop / nix-shell give the uv workflow used on Arch.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Padreug 2026-09-20 21:53:07 +02:00
commit 959b6ea17d
4 changed files with 132 additions and 7 deletions

View file

@ -1,7 +1,8 @@
# NixOS / nix users: `nix-shell` then `uv run boltcard-writer ...`.
# pcscd itself must run on the host: services.pcscd.enable = true;
# Non-flake entry point: `nix-shell` then `uv run boltcard-writer ...`.
# Same environment as the flake's devShell. pcscd must run on the host.
{ pkgs ? import <nixpkgs> { } }:
pkgs.mkShell {
packages = [ pkgs.uv pkgs.python3 pkgs.pcsclite pkgs.pcsc-tools ];
PCSCLITE_LIB = "${pkgs.pcsclite.lib}/lib/libpcsclite.so.1";
UV_PYTHON = "${pkgs.python3}/bin/python3";
}