{ kicad, kikit, zip, runCommand, nix-filter, panel, }: let schSrc = nix-filter { root = ./..; include = [ (nix-filter.matchExt "kicad_sch") ]; }; pcbSrc = nix-filter { root = ./..; include = [ (nix-filter.matchExt "kicad_pcb") (nix-filter.matchExt "kicad_pro") ]; }; in runCommand "ocularium.fab" { nativeBuildInputs = [ kicad kikit zip ]; src = panel; allowedRequisites = []; } '' set -e mkdir -p $out/share/npry/ocularium/fab mkdir -p $out/share/npry/ocularium/panel/fab export HOME=$(mktemp -d) cd $out/share/npry/ocularium/fab kikit fab jlcpcb --assembly \ --no-drc \ --schematic ${schSrc}/okm.kicad_sch \ --field 'LCSC Part #,LCSC Part No' \ --missingError \ ${pcbSrc}/okm.kicad_pcb . rm -rf gerber cd ../panel kikit fab jlcpcb --assembly \ --no-drc \ --schematic ${schSrc}/okm.kicad_sch \ --field 'LCSC Part #,LCSC Part No' \ --missingError \ $src/share/npry/ocularium/panel.kicad_pcb . rm -rf gerber ''