diff options
Diffstat (limited to 'nix/model.nix')
| -rw-r--r-- | nix/model.nix | 41 |
1 files changed, 20 insertions, 21 deletions
diff --git a/nix/model.nix b/nix/model.nix index daa86ca..04bf1b1 100644 --- a/nix/model.nix +++ b/nix/model.nix @@ -3,30 +3,34 @@ runCommand, nix-filter, - - panel, + lib, withTracks ? false, withZones ? false, + + src, + pcb_path, + + boardName ? (lib.removeSuffix ".kicad_pcb" (builtins.baseNameOf pcb_path)), }: let zonesArg = if withZones then "--include-zones" else ""; tracksArg = if withTracks then "--include-tracks" else ""; + sharePath = "share/npry/clef/model"; -in runCommand "ocularium.model" { +in runCommand "${boardName}.model" { nativeBuildInputs = [ kicad ]; src = nix-filter { - root = ./..; + root = src; - exclude = [ - "nix" - ".gitignore" - "flake.nix" - "flake.lock" - ".envrc" - "kikit" + include = [ + (nix-filter.matchExt "kicad_pcb") + + (nix-filter.matchExt "stp") + (nix-filter.matchExt "step") + (nix-filter.matchExt "wrl") ]; }; @@ -36,18 +40,13 @@ in runCommand "ocularium.model" { } '' set -e - mkdir -p $out/share/npry/ocularium/model - mkdir -p $out/share/npry/ocularium/panel/model - export HOME=$(mktemp -d) - cd $out/share/npry/ocularium/model - - kicad-cli pcb export step --subst-models --no-dnp ${tracksArg} ${zonesArg} $src/okm.kicad_pcb -o ocularium.step - kicad-cli pcb export glb --subst-models --no-dnp ${tracksArg} ${zonesArg} $src/okm.kicad_pcb -o ocularium.glb + echo "board: '${boardName}'" >&2 - cd ../panel/model + mkdir -p $out/${sharePath} + cd "$out/${sharePath}" - kicad-cli pcb export step --subst-models --no-dnp ${tracksArg} ${zonesArg} ${panel}/share/npry/ocularium/panel.kicad_pcb -o panel.step - kicad-cli pcb export glb --subst-models --no-dnp ${tracksArg} ${zonesArg} ${panel}/share/npry/ocularium/panel.kicad_pcb -o panel.glb + kicad-cli pcb export step --subst-models --no-dnp ${tracksArg} ${zonesArg} "$src/${pcb_path}" -o "${boardName}.step" + kicad-cli pcb export glb --subst-models --no-dnp ${tracksArg} ${zonesArg} "$src/${pcb_path}" -o "${boardName}.glb" '' |
