milis/bin/mas

142 lines
3.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#! /bin/bash
# milisia ağ sistemi (mas) bash tabanlı konsol uygulaması.
# milisarge <milisarge@gmail.com> 2017
surum="0.0.1"
surumbilgi=" <milisarge@gmail.com> 2017"
anayer="/opt/milisia"
servis="cjdroute"
servisk="cjdns"
pingkontrol="fcf4:e309:14b5:5498:cafd:4f59:4b9c:7f84" # hia.cjdns.ca
ayardosya="ayarlar/milisia_genel.conf"
noktadepo="noktalar"
nokta_adres="https://github.com/milisarge/$noktadepo"
[ ! -d $anayer ] && mkdir -p $anayer
[ ! -d $anayer/ayarlar ] && mkdir -p $anayer/ayarlar
[ ! -c /dev/net/tun ] && aygit_ekle
[ ! -f /usr/bin/$servis ] && mps kur $servisk
[ ! -f /usr/bin/json ] && json_kur
aygit_ekle(){
mkdir -p /dev/net &&
mknod /dev/net/tun c 10 200 &&
chmod 0666 /dev/net/tun
}
json_kur(){
curl -L https://github.com/trentm/json/raw/master/lib/json.js > /usr/bin/json && chmod +x /usr/bin/json
}
baslat(){
cjdroute < $anayer/$ayardosya
}
durdur(){
echo "servis durduruluyor"
killall -9 cjdroute
echo "servis durduruldu"
}
olustur(){
if [ ! -f $anayer/$ayardosya ]; then
cjdroute --genconf | cjdroute --cleanconf > $anayer/$ayardosya
echo "ayar dosyası oluşturuldu"
else
echo "zaten ayar dosyası mevcut!"
echo "yeniden oluşturmak için --zo kullanın"
fi
}
yeniden_olustur(){
mv $anayer/$ayardosya $anayer/$ayardosya-"`date +%m-%d-%y.%H%M%S`"
cjdroute --genconf | cjdroute --cleanconf > $anayer/$ayardosya
echo "ayar dosyası oluşturuldu"
}
genel_kimlik(){
cat $anayer/$ayardosya | egrep -m 1 '"publicKey"' | awk -F '"' '{ print $4 }'
}
ozel_kimlik(){
cat $anayer/$ayardosya | egrep -m 1 '"privateKey"' | awk -F '"' '{ print $4 }'
}
ipv6_al(){
#grep -Eo '"ipv6" :.*?[^\\]",' $ayardosya | awk '{print $3}' ;;
#cat $ayardosya | json.js ipv6
cat $anayer/$ayardosya | egrep -m 1 '"ipv6"' | awk -F '"' '{ print $4 }'
}
nokta_ekle(){
if [ ! -f $anayer/$ayardosya ]; then
olustur
fi
ipadres="`json -f $1 -Ma key | sed -n 1p`"
icerik="`json -f $1 -Ma value`"
json -I -f $anayer/$ayardosya -e 'this.interfaces.UDPInterface[0]["connectTo"]["'$ipadres'"]='"$icerik"' '
}
depo_guncelle(){
if [ ! -d $anayer/$noktadepo ];then
git clone $nokta_adres $anayer/$noktadepo
else
cd $anayer/$noktadepo
git pull
cd -
fi
}
rpc_sifre(){
cat $anayer/$ayardosya | json admin.password
#cat $ayardosya | egrep -m 3 '"password"' | awk -F '"' '{ print $4 }' | sed -n 1p
}
menu() {
while [ "$1" ]; do
case $1 in
yeni|--o)
olustur ;;
zyeni|--zo)
yeniden_olustur ;;
basla|--b)
baslat ;;
yebas|--b)
durdur && baslat ;;
ping|--p)
ping6 $pingkontrol ;;
guncelle|--g)
depo_guncelle ;;
kimlik|--k)
genel_kimlik ;;
okimlik|--ok)
ozel_kimlik ;;
ip|--i)
ipv6_al ;;
ekle|--e)
if [ ! "$2" ]; then
echo "nokta ayar dosyası belirtin!"
exit 1
fi
nokta_ekle $anayer/$noktadepo/$2 ;;
sil|--s)
if [ ! "$2" ]; then
echo "nokta ayar dosyası belirtin!"
exit 1
fi
nokta_sil $anayer/$noktadepo/$2 ;;
rpcs|--rs)
rpc_sifre ;;
dur|--d)
durdur ;;
ekle|--e)
peer_ekle "$2" ;;
surum|--s)
echo "$surum $surumbilgi" ;;
esac
shift
done
}
menu "$@"