diff options
Diffstat (limited to 'nix/fabrication.nix')
| -rw-r--r-- | nix/fabrication.nix | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/nix/fabrication.nix b/nix/fabrication.nix new file mode 100644 index 0000000..82a5d3f --- /dev/null +++ b/nix/fabrication.nix @@ -0,0 +1,65 @@ +{ + 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 +'' |
