This commit is contained in:
Yury Martynov 2019-09-21 19:43:19 +03:00
parent 4affce229b
commit 050eaf24af
No known key found for this signature in database
GPG key ID: EBE62DD0CCEAE19E
5 changed files with 227 additions and 0 deletions

View file

@ -0,0 +1 @@
DIST berate_ap-20190918.tar.gz 23696 BLAKE2B 88b69c77e6ddafc72b3d9e6bef20f5339131b439427f2fba0838d1c36a8573dfe941d6c5a3330b23eb9462c77e72d67fda7033a8bdbea8162c53f168442122e2 SHA512 adb26cbe66723360aed20284cd6c01013ebc1d52e54a4957a16badf8f531603e07ae98582b576679b82dee0b712027211e50ba375f2b22d2fbb53b01fa208b32

View file

@ -0,0 +1 @@
./berate_ap-99999999.ebuild

View file

@ -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
}

View file

@ -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:

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>email@linxon.ru</email>
<name>Yury Martynov</name>
</maintainer>
</pkgmetadata>