{ runCommand, interactiveHtmlBom, nix-filter, lib, pcb_path, src, boardName ? (lib.removeSuffix ".kicad_pcb" (builtins.baseNameOf pcb_path)), extraArgs ? [], }: let sharePath = "share/npry/clef/bom"; in runCommand "${boardName}.bom" { nativeBuildInputs = [ interactiveHtmlBom ]; INTERACTIVE_HTML_BOM_NO_DISPLAY = 1; src = nix-filter { root = src; include = [ (nix-filter.matchExt "kicad_pcb") (nix-filter.matchExt "kicad_pro") ]; }; } '' mkdir -p "$out/${sharePath}" generate_interactive_bom \ --dest-dir "$out/${sharePath}" \ ${lib.concatMapStrings (arg: "${arg} \\n") extraArgs} \ "$src/${pcb_path}" ''