{ runCommand, interactiveHtmlBom, nix-filter, lib, pcb_path, src, boardName ? (lib.removeSuffix ".kicad_pcb" (builtins.baseNameOf pcb_path)), extraArgs ? [ "--dark-mode" "--include-tracks" "--include-nets" ], }: 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") (nix-filter.matchExt "kicad_wks") (_args: path: type: type == "directory") ]; }; } '' mkdir -p "$out/${sharePath}" cd $src generate_interactive_bom \ --dest-dir "$out/${sharePath}" \ --no-browser \ ${lib.concatMapStrings (arg: "${arg} \\\n") extraArgs} \ "$src/${pcb_path}" ''