diff options
Diffstat (limited to 'nix/panel.nix')
| -rw-r--r-- | nix/panel.nix | 45 |
1 files changed, 31 insertions, 14 deletions
diff --git a/nix/panel.nix b/nix/panel.nix index 41f55dd..a56539a 100644 --- a/nix/panel.nix +++ b/nix/panel.nix @@ -1,29 +1,46 @@ { - kicad, kikit, - nix-filter, runCommand, -}: runCommand "ocularium.panel" { - nativeBuildInputs = [ - kicad - kikit - ]; - src = nix-filter { - root = ./..; + nix-filter, + lib, + + panelizeConfigs ? [":jlcTooling"], + src, + pcb_path, + + boardName ? (lib.removeSuffix ".kicad_pcb" (builtins.baseNameOf pcb_path)), +}: let + sharePath = "share/npry/clef/panel"; + + panelSrc = nix-filter { + root = src; include = [ - "kikit" (nix-filter.matchExt "kicad_pcb") ]; }; + +in runCommand "${boardName}.panel" { + nativeBuildInputs = [ + kikit + ]; + + allowedRequisites = []; } '' set -e export HOME=$(mktemp -d) - mkdir -p $out/share/npry/ocularium - cd $HOME + mkdir -p "$out/${sharePath}" + + # do the panelize here rather than in $out because it creates junk we don't want + cd $HOME + + kikit panelize \ + ${lib.concatMapStrings (conf: "-p ${conf} \\\n") panelizeConfigs} \ + "${panelSrc}/${pcb_path}" \ + "panel.kicad_pcb" - kikit panelize -p :jlcTooling -p $src/kikit/jlc_edge_rails.json $src/okm.kicad_pcb panel.kicad_pcb - cp panel.kicad_{pcb,pro} $out/share/npry/ocularium + cp -v panel.kicad_{pcb,pro} "$out/${sharePath}" + cp -v "${src}/"*.kicad_{sch,pro} "$out/${sharePath}" '' |
