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>
This commit is contained in:
h7x4 2023-11-14 12:29:01 +01:00
parent 3ee9f51ed9
commit 198106a3d7
No known key found for this signature in database
GPG Key ID: 9F2F7D8250F35146

View File

@ -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";
postBuild = ''
shopt -s extglob
rm -rf $out/!(share)
rm -rf $out/share/!(wordlists)
shopt -u extglob
'';
};
name = "${pname}-${version}";
paths = lists;
postBuild = ''
mkdir -p $out/bin
# 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
# 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
# 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"
'';
in symlinkJoin {
name = "wordlists";
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 ];
};
}