{ config, lib, pkgs, inputs, ... }: with lib; let cfg = config.nixfiles.modules.nmap; in { options.nixfiles.modules.nmap.enable = mkEnableOption "Whether to enable Nmap."; config = mkIf cfg.enable { hm.home = { file = { ".nmap/scripts/vulners/vulners.nse".source = "${inputs.nmap-vulners}/vulners.nse"; ".nmap/scripts/vulscan/vulscan.nse".source = "${inputs.nmap-vulscan}/vulscan.nse"; }; packages = with pkgs; [nmap nmap-formatter]; activation.regenerateNmapScriptDatabase = with pkgs; '' # declare -a vulscandbs=( # "cve" # "exploitdb" # "openvas" # "osvdb" # "scipvuldb" # "securityfocus" # "securitytracker" # "xforce" # ) # for i in "''${vulscandbs[@]}"; do # ${curl}/bin/curl \ # -o "$HOME/.nmap/scripts/vulscan/$i.csv" \ # "https://www.computec.ch/projekte/vulscan/download/$i.csv" # done ${nmap}/bin/nmap --script-updatedb ''; }; }; }