diff --git a/net-wireless/berate_ap/Manifest b/net-wireless/berate_ap/Manifest new file mode 100644 index 000000000..881e8292d --- /dev/null +++ b/net-wireless/berate_ap/Manifest @@ -0,0 +1 @@ +DIST berate_ap-20190918.tar.gz 23696 BLAKE2B 88b69c77e6ddafc72b3d9e6bef20f5339131b439427f2fba0838d1c36a8573dfe941d6c5a3330b23eb9462c77e72d67fda7033a8bdbea8162c53f168442122e2 SHA512 adb26cbe66723360aed20284cd6c01013ebc1d52e54a4957a16badf8f531603e07ae98582b576679b82dee0b712027211e50ba375f2b22d2fbb53b01fa208b32 diff --git a/net-wireless/berate_ap/berate_ap-20190918.ebuild b/net-wireless/berate_ap/berate_ap-20190918.ebuild new file mode 120000 index 000000000..bb442385f --- /dev/null +++ b/net-wireless/berate_ap/berate_ap-20190918.ebuild @@ -0,0 +1 @@ +./berate_ap-99999999.ebuild \ No newline at end of file diff --git a/net-wireless/berate_ap/berate_ap-99999999.ebuild b/net-wireless/berate_ap/berate_ap-99999999.ebuild new file mode 100644 index 000000000..528b34511 --- /dev/null +++ b/net-wireless/berate_ap/berate_ap-99999999.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit bash-completion-r1 systemd + +DESCRIPTION="Script for orchestrating mana rogue WiFi Access Points (fork create_ap)" +HOMEPAGE="https://github.com/sensepost/berate_ap" + +if [[ $PV == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/sensepost/berate_ap" +else + HASH_COMMIT="8419908b79bae16ecb3567808e05639d4ab8dd6e" + SRC_URI="https://github.com/sensepost/berate_ap/archive/${HASH_COMMIT}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" + S="${WORKDIR}/${PN}-${HASH_COMMIT}" +fi + +LICENSE="BSD-2" +SLOT="0" +IUSE="" + +DEPEND="" +RDEPEND=" + sys-apps/util-linux + sys-process/procps + net-wireless/hostapd-mana + sys-apps/iproute2 + net-wireless/iw + net-misc/bridge-utils + net-dns/dnsmasq + net-firewall/iptables" + +src_compile() { + : +} + +src_install() { + insinto "/etc" + doins berate_ap.conf + + dobin berate_ap + systemd_dounit berate_ap.service + newbashcomp "${FILESDIR}"/bash_completion berate_ap + + dodoc -r howto README.md +} diff --git a/net-wireless/berate_ap/files/bash_completion b/net-wireless/berate_ap/files/bash_completion new file mode 100644 index 000000000..b7eea68bb --- /dev/null +++ b/net-wireless/berate_ap/files/bash_completion @@ -0,0 +1,168 @@ +# +# Bash Completion routine for berate_ap +# + +_use_filedir() { + if [[ $(type -t _filedir) == "function" ]]; then + _filedir + return 0 + fi + return 1 +} + +_berate_ap() { + local awk_cmd=' + ($1 ~ /^-/) { + for (i = 1; i <= NF; i++) { + if ($i ~ /,$/) { + print substr ($i, 0, length ($i)-1) + } + else { + print $i + break + } + } + } + ' + + local cur prev opts + COMPREPLY=() + cur="$2" + prev="$3" + opts=$("$1" --help | awk "$awk_cmd") + + case "$prev" in + -h|--help) + # No Options + ;; + --version) + # No Options + ;; + -c) + # Refer http://en.wikipedia.org/wiki/List_of_WLAN_channels + opts=$( + iw list | grep ' MHz \[[[:digit:]]\+\] ' | + grep -v 'no IR\|disabled' | + sed 's/.*\[\(.*\)\].*/\1/' | sort -n | uniq + ) + ;; + -w) + opts="1 2 1+2" + ;; + -n) + # No Options + ;; + -m) + opts="nat bridge none" + ;; + --psk) + # No Options + ;; + --hidden) + # No Options + ;; + --mac-filter) + # No Options + ;; + --mac-filter-accept) + # No Options + ;; + --ieee80211n) + # No Options + ;; + --ht_capab) + # Refer http://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf + opts=' + [LDPC] [HT40-] [HT40+] [SMPS-STATIC] [SMPS-DYNAMIC] + [GF] [SHORT-GI-20] [SHORT-GI-40] [TX-STBC] + [RX-STBC1] [RX-STBC12] [RX-STBC123] [DELAYED-BA] + [MAX-AMSDU-7935] [DSSS_CCK-40] [40-INTOLERANT] + [LSIG-TXOP-PROT] + ' + ;; + --country) + local reg_file=/usr/lib/crda/regulatory.bin + if command -v regdbdump > /dev/null && [[ -f "$reg_file" ]]; then + local country_awk_cmd=' + ($1 ~ /^country/) { + print substr ($2, 0, length ($2)-1) + } + ' + opts=$(regdbdump "$reg_file" 2>/dev/null | awk "$country_awk_cmd") + else + opts=' + AD AE AF AI AL AM AN AR AS AT AU AW AZ BA BB BD BE + BF BG BH BL BM BN BO BR BS BT BY BZ CA CF CH CI CL + CN CO CR CX CY CZ DE DK DM DO DZ EC EE EG ES ET FI + FM FR GB GD GE GF GH GL GP GR GT GU GY HK HN HR HT + HU ID IE IL IN IR IS IT JM JO JP KE KH KN KP KR KW + KY KZ LB LC LI LK LS LT LU LV MA MC MD ME MF MH MK + MN MO MP MQ MR MT MU MW MX MY NG NI NL NO NP NZ OM + PA PE PF PG PH PK PL PM PR PT PW PY QA RE RO RS RU + RW SA SE SG SI SK SN SR SV SY TC TD TG TH TN TR TT + TW TZ UA UG US UY UZ VC VE VI VN VU WF WS YE YT ZA + ZW 00 + ' + fi + ;; + --freq-band) + opts="2.4 5" + ;; + --driver) + # Refer http://w1.fi/cgit/hostap/tree/src/drivers + # Not going to implement + ;; + --no-virt) + # No Options + ;; + --no-haveged) + # No Options + ;; + --fix-unmanaged) + # No Options + ;; + --mac) + # Not going to implement + ;; + --daemon) + # No Options + ;; + --stop) + local stop_awk_cmd='$1 ~ /^[0-9]+$/' + opts=$("$1" --list-running | awk "$stop_awk_cmd") + ;; + --list-running) + # No Options + ;; + --list-clients) + local clients_awk_cmd='$1 ~ /^[0-9]+$/' + opts=$("$1" --list-running | awk "$clients_awk_cmd") + ;; + --no-dns) + # No Options + ;; + --dhcp-dns) + # Not going to implement + ;; + --mkconfig) + _use_filedir && return 0 + ;; + --config) + _use_filedir && return 0 + ;; + -g) + # Not going to implement + ;; + -d) + # No Options + ;; + *) + ;; + esac + + COMPREPLY=( $(compgen -W "$opts" -- $cur) ) + return 0 +} +complete -F _berate_ap berate_ap + +# vim: set ft=sh: diff --git a/net-wireless/berate_ap/metadata.xml b/net-wireless/berate_ap/metadata.xml new file mode 100644 index 000000000..ebc718e70 --- /dev/null +++ b/net-wireless/berate_ap/metadata.xml @@ -0,0 +1,8 @@ + + + + + email@linxon.ru + Yury Martynov + +