aboutsummaryrefslogtreecommitdiff
path: root/nix/model.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix/model.nix')
-rw-r--r--nix/model.nix41
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"
''