Seite 1 von 1

Interaktives Script unter /var/tuxbox/plugins einbinden

Verfasst: Sa 3. Mär 2018, 16:05
von satellitenschubser
Moin.

Da mein VPN-Anbieter und die OpenVPN Einstellungen in den Erweiterungen irgendwie nicht zusammen kommen wollen, habe ich, um einen VPN-Server anzuwählen, bereits ein funtionierendes Bash-Script in dem im Titel angegebenen Verzeichnis angelegt.

Ein weiteres Script habe ich vor einem halben Jahr für meine Raspi gebaut, weil Kodi ähnliche Probleme hatte. Dies läuft auf der Konsole und ist interaktiv zum schnellen Wechsel von VPN-Servern. Nachdem ich das jetzt mit ein paar kleinen Änderungen auch auf der Konsole meiner HD51 ans Laufen gekriegt habe, frage ich mich jetzt, warum es scheinbar nicht möglich ist, das Script aus der Neutrino-Oberfläche zu bedienen. Die Bash erwartet eine Zahleneingabe zwischen 0 und 100, reagiert aber nicht auf die FB. Muß ich da vielleicht irgendwas in der cfg ändern?

Hier mal meine cfg:
[+] Spoiler

type=3
name=VPN-Server Auswahl
desc=VPN ein
index=05
key=auto
needfb=1
needrc=1
needoffsets=1
hide=0
shellwindow=1
integration=0
hinticon=
und auch mal das Script zur Ansicht:
[+] Spoiler

#!/bin/bash
ls /media/sda1/VPN/ > /media/sda1/dateien.txt
echo "============================================================ VPN Manager ======================================================================"
showMenu(){
echo "--------------------"
echo " menu"
echo "--------------------"
grep 'conf' /media/sda1/dateien.txt > /media/sda1/dateien1.txt
sed = /media/sda1/dateien1.txt | sed 'N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 /' | sed 's/\(.*\)\.[^.]*$/\1/'
echo " 0 VPN beenden"
echo " 100 Abbrechen"
echo "--------------------"

read -p "Bitte Nummer des Servers angeben: " mc
return $mc
}
string=$(curl -s ipinfo.io/org )
if [ "$string" = "AS8881 1&1 Versatel Deutschland GmbH" ]; then
echo "Status:"
echo -e "\e[31mServer nicht verbunden!\e[0m"
#kodi-send -a "Notification(GooseVPN,OVPN ist offline.)"
else
echo "Status:"
echo -e "\e[93mServer verbunden.\e[0m"
#kodi-send -a "Notification(GooseVPN,OVPN ist verbunden.)"
fi
echo "========================================================= VPN Server Auswahl =================================================================="
showMenu
m=$?
if [ "$m" == "0" ] ; then
echo "========================================================= Stop VPN Service ===================================================================="
killall -9 openvpn
modprobe -r tun.ko
echo "Beende VPN Service"
echo "============================================================= IP direkt ======================================================================="
curl ipinfo.io
echo
echo "Service beendet"
elif [ "$m" == "100" ]; then
exit 0
fi
server=$(head -n$m /media/sda1/dateien.txt|tail -n1)
echo "Verbinde mit Server $server"
#string1=$(curl -s ipinfo.io/org )
modprobe tun.ko
echo "============================================================= IP vorher ======================================================================="
curl ipinfo.io
echo
echo "========================================================= Stop VPN Service ===================================================================="
killall -9 openvpn
/sbin/openvpn /media/sda1/VPN/$server
sleep 10
echo
echo "==============================================================IP nachher ======================================================================"
curl ipinfo.io
echo
echo "================================================= Neuen Server in die Autostart eintragen? ===================================================="
#read -n 1 -p"Beim Neustart mit dem Server verbinden(j/n)? " response
#echo
#if [ "$response" == "j" ]; then
#echo
#echo "openvpn --daemon --config /storage/vpn/$server" > /storage/.config/autostart.sh
#echo "(sleep 20; sh /storage/nachricht.sh)&" >> /storage/.config/autostart.sh
#echo "Start-Server gewechselt."
#fi
echo "==============================================================================================================================================="
string=$(curl -s ipinfo.io/org )
if [ "$string" = "AS8881 1&1 Versatel Deutschland GmbH" ]; then
echo "----------------"
echo -e "\e[31mServer nicht verbunden!\e[0m"
#kodi-send -a "Notification(GooseVPN,OVPN ist offline.)"
else
echo "----------------"
echo -e "\e[93mServer verbunden.\e[0m"
#kodi-send -a "Notification(GooseVPN,OVPN ist verbunden.)"
fi
Die auskommentierten Zeilen sind noch Baustellen :wink:

Gruß Hans

Re: Interaktives Script unter /var/tuxbox/plugins einbinden

Verfasst: Sa 3. Mär 2018, 19:52
von fred_feuerstein
Du hast bei dem script zwar Ausgaben und Anzeigen drin und in der Cfg auch das shellwindow aktiviert. Das shellwindow ist aber nur eine Anzeige und reagiert nicht auf Eingaben.

Du müsstest also schon ein richtiges plugin mit Eingabemoglichkeiten erstellen. Entweder ein solches Skript mit Eingaben und Anzeigen über msgbox (so mache ich das bspw. beim Logo updater oder smart home Info) oder ein plugin mit Lua. Das wäre die modernere Form und die Anzeigen würden genauso aussehen wie die sonstigen neutrino Menüs.

Re: Interaktives Script unter /var/tuxbox/plugins einbinden

Verfasst: Sa 3. Mär 2018, 20:21
von satellitenschubser
Autsch...das hatte ich schon befürchtet :grinning:
Da werde ich mich doch mal ersthaft mit Lua auseinandersetzten müssen. Das gibt wieder viele schlaflose Nächte :grin:
Danke dir für den hilfreichen Tipp!

Gruß Hans