20 # what the author calls "Internals"
27 # Missing in nixpkgs: beef, hostapd-wpe
44 , reaverwps-t6x # Could be the upstream version too
46 # Undocumented requirements (there is also ping)
54 , supportWpaWps ? true # Most common use-case
55 , supportHashCracking ? false
56 , supportEvilTwin ? false
57 , supportX11 ? false # Allow using xterm instead of tmux, hard to test
82 ] ++ lib.optionals supportWpaWps [
86 ] ++ lib.optionals supportHashCracking [
94 ] ++ lib.optionals supportEvilTwin [
104 ] ++ lib.optionals supportX11 [
110 stdenv.mkDerivation rec {
114 src = fetchFromGitHub {
115 owner = "v1s1t0r1sh3r3";
117 rev = "refs/tags/v${version}";
118 hash = "sha256-3Rx1tMRIpSk+IEJGOs+t+kDlvGHYOx1IOSi+663uzrw=";
122 nativeBuildInputs = [ makeWrapper ];
124 # What these replacings do?
125 # - Disable the auto-updates (we'll run from a read-only directory);
126 # - Silence the checks (NixOS will enforce the PATH, it will only see the tools as we listed);
127 # - Use "tmux", we're not patching XTerm commands;
128 # - Remove PWD and $0 references, forcing it to use the paths from store;
129 # - Force our PATH to all tmux sessions.
131 patchShebangs airgeddon.sh
133 s|AIRGEDDON_AUTO_UPDATE=true|AIRGEDDON_AUTO_UPDATE=false|
134 s|AIRGEDDON_SILENT_CHECKS=false|AIRGEDDON_SILENT_CHECKS=true|
135 s|AIRGEDDON_WINDOWS_HANDLING=xterm|AIRGEDDON_WINDOWS_HANDLING=tmux|
139 s|\$\(pwd\)|${placeholder "out"}/share/airgeddon;scriptfolder=${placeholder "out"}/share/airgeddon/|
140 s|\$\{0\}|${placeholder "out"}/bin/airgeddon|
141 s|tmux send-keys -t "([^"]+)" "|tmux send-keys -t "\1" "export PATH=\\"$PATH\\"; |
145 # ATTENTION: No need to chdir around, we're removing the occurrences of "$(pwd)"
147 wrapProgram $out/bin/airgeddon --prefix PATH : ${lib.makeBinPath deps}
150 # Install only the interesting files
153 install -Dm 755 airgeddon.sh "$out/bin/airgeddon"
154 install -dm 755 "$out/share/airgeddon"
155 cp -dr .airgeddonrc known_pins.db language_strings.sh plugins/ "$out/share/airgeddon/"
160 description = "Multi-use TUI to audit wireless networks";
161 mainProgram = "airgeddon";
162 homepage = "https://github.com/v1s1t0r1sh3r3/airgeddon";
163 changelog = "https://github.com/v1s1t0r1sh3r3/airgeddon/blob/v${version}/CHANGELOG.md";
164 license = licenses.gpl3Plus;
165 maintainers = with maintainers; [ ];
166 platforms = platforms.linux;