{ kikit, runCommand, nix-filter, lib, panelizeConfigs, src, pcb_path, boardName ? (lib.removeSuffix ".kicad_pcb" (builtins.baseNameOf pcb_path)), }: let sharePath = "share/npry/clef/panel"; panelSrc = nix-filter { root = src; include = [ (nix-filter.matchExt "kicad_pcb") ]; }; in runCommand "${boardName}.panel" { nativeBuildInputs = [ kikit ]; allowedRequisites = []; } '' set -e export HOME=$(mktemp -d) 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" cp -v panel.kicad_{pcb,pro} "$out/${sharePath}" cp -v "${src}/"*.kicad_{sch,pro} "$out/${sharePath}" ''