{ kicad, runCommand, nix-filter, lib, src, sch_path, schName ? (lib.removeSuffix ".kicad_sch" (builtins.baseNameOf sch_path)), }: let sharePath = "share/npry/clef/schematic"; in runCommand "${schName}.schematic" { nativeBuildInputs = [ kicad ]; src = nix-filter { root = src; include = [ (nix-filter.matchExt "kicad_sch") (nix-filter.matchExt "kicad_pro") ]; }; } '' set -e export HOME=$(mktemp -d) echo "schematic: '${schName}'" >&2 mkdir -p "$out/${sharePath}/svg" cd "$out/${sharePath}" kicad-cli sch export pdf -o schematic.pdf $src/${sch_path} kicad-cli sch export svg -n -o svg $src/${sch_path} cd svg # normalize for f in *.svg; do if [ "$f" = "${schName}.svg" ]; then mv -nv "$f" "root.svg" continue fi mv -nv "$f" "''${f#${schName}-}" done ''