summary refs log tree commit diff
path: root/pkgs/by-name
diff options
context:
space:
mode:
authorh7x4 <h7x4@nani.wtf>2023-11-14 12:29:01 +0100
committerh7x4 <h7x4@nani.wtf>2023-11-17 17:58:09 +0100
commit198106a3d78ceae9d097bbcd0aceb4852e839e15 (patch)
tree53bc0eecd46bfb174eb10b17b0db78a7ed76fa4e /pkgs/by-name
parent3ee9f51ed9fa3e6ce195572ffdc0863008139d66 (diff)
downloadnixpkgs-198106a3d78ceae9d097bbcd0aceb4852e839e15.tar
nixpkgs-198106a3d78ceae9d097bbcd0aceb4852e839e15.tar.gz
nixpkgs-198106a3d78ceae9d097bbcd0aceb4852e839e15.tar.bz2
nixpkgs-198106a3d78ceae9d097bbcd0aceb4852e839e15.tar.lz
nixpkgs-198106a3d78ceae9d097bbcd0aceb4852e839e15.tar.xz
nixpkgs-198106a3d78ceae9d097bbcd0aceb4852e839e15.tar.zst
nixpkgs-198106a3d78ceae9d097bbcd0aceb4852e839e15.zip
wordlists: refactor
- Remove version tag
- Filter out non-wordlist content from wordlist packages
- Split up the derivation into several logical parts
- Reorder package inputs to be in the order which they are used
- Add h7x4 as maintainer

Co-authored-by: Peder Bergebakken Sundt <pbsds@hotmail.com>
Co-authored-by: Janik H. <janik@aq0.de>
Diffstat (limited to 'pkgs/by-name')
-rw-r--r--pkgs/by-name/wo/wordlists/package.nix57
1 files changed, 30 insertions, 27 deletions
diff --git a/pkgs/by-name/wo/wordlists/package.nix b/pkgs/by-name/wo/wordlists/package.nix
index 16106707fd9..5edd1f5ece4 100644
--- a/pkgs/by-name/wo/wordlists/package.nix
+++ b/pkgs/by-name/wo/wordlists/package.nix
@@ -1,11 +1,8 @@
 { lib
-, callPackage
+, symlinkJoin
 , nmap
 , rockyou
-, runtimeShell
 , seclists
-, symlinkJoin
-, tree
 , wfuzz
 , lists ? [
     nmap
@@ -13,33 +10,39 @@
     seclists
     wfuzz
   ]
+, writeShellScriptBin
+, tree
 }:
+let
+  wordlistsCollection = symlinkJoin {
+    name = "wordlists-collection";
+    paths = lists;
 
-symlinkJoin rec {
-  pname = "wordlists";
-  version = "unstable-2023-10-10";
-
-  name = "${pname}-${version}";
-  paths = lists;
+    postBuild = ''
+      shopt -s extglob
+      rm -rf $out/!(share)
+      rm -rf $out/share/!(wordlists)
+      shopt -u extglob
+    '';
+  };
 
-  postBuild = ''
-    mkdir -p $out/bin
+  # A command to show the location of the links.
+  wordlistsBin = writeShellScriptBin "wordlists" ''
+    ${lib.getExe tree} ${wordlistsCollection}/share/wordlists
+  '';
+  # A command for easy access to the wordlists.
+  wordlistsPathBin = writeShellScriptBin "wordlists_path" ''
+    printf "${wordlistsCollection}/share/wordlists\n"
+  '';
 
-    # Create a command to show the location of the links.
-    cat >> $out/bin/wordlists << __EOF__
-    #!${runtimeShell}
-    ${tree}/bin/tree ${placeholder "out"}/share/wordlists
-    __EOF__
-    chmod +x $out/bin/wordlists
+in symlinkJoin {
+  name = "wordlists";
 
-    # Create a handy command for easy access to the wordlists.
-    # e.g.: `cat "$(wordlists_path)/rockyou.txt"`, or `ls "$(wordlists_path)/dirbuster"`
-    cat >> $out/bin/wordlists_path << __EOF__
-    #!${runtimeShell}
-    printf "${placeholder "out"}/share/wordlists\n"
-    __EOF__
-    chmod +x $out/bin/wordlists_path
-  '';
+  paths = [
+    wordlistsCollection
+    wordlistsBin
+    wordlistsPathBin
+  ];
 
   meta = with lib; {
     description = "A collection of wordlists useful for security testing";
@@ -65,6 +68,6 @@ symlinkJoin rec {
       If you want to add a new package that provides wordlist/s the convention
       is to copy it to {file}`$out/share/wordlists/myNewWordlist`.
     '';
-    maintainers = with maintainers; [ janik pamplemousse ];
+    maintainers = with maintainers; [ janik pamplemousse h7x4 ];
   };
 }