X-Git-Url: http://git.harvie.cz/?a=blobdiff_plain;f=bash%2Fgtk-gnutella-upnp%2Fgtk-gnutella-upnp.sh;h=abf7e551ae4903f843f620790f178334b19595a5;hb=086b87645afc7b67df716f5efe1cc17eb4140501;hp=d3e83470dd70041a1ed302e8089f5e9010f040cc;hpb=e96e0fec4420ecc96e92d26479c671bcc2667e3b;p=mirrors%2FPrograms.git diff --git a/bash/gtk-gnutella-upnp/gtk-gnutella-upnp.sh b/bash/gtk-gnutella-upnp/gtk-gnutella-upnp.sh index d3e8347..abf7e55 100755 --- a/bash/gtk-gnutella-upnp/gtk-gnutella-upnp.sh +++ b/bash/gtk-gnutella-upnp/gtk-gnutella-upnp.sh @@ -1,11 +1,29 @@ #!/bin/bash -upnpc="$(which upnpc)"; -gnet_port="$(grep listen_port ~/.gtk-gnutella/config_gnet | grep -o [0-9]* | head -n 1)"; -test "$gnet_port" -gt 1 || upnpc=true; -"$upnpc" -r "$gnet_port" TCP "$gnet_port" TCP; -"$upnpc" -r "$gnet_port" UDP "$gnet_port" UDP; -echo -e '\n======================= GTK-GNUTELLA =======================\n' -echo "listen_port=$gnet_port" -gtk-gnutella $@; -echo -e '\n===================== GTK-GNUTELLA-END =====================\n' -"$upnpc" -d "$gnet_port" TCP "$gnet_port" UDP; +gtk-gnutella-listen-port() { + grep listen_port ~/.gtk-gnutella/config_gnet | grep -o [0-9]* | head -n 1; +} + +gtk-gnutella-upnpc() { + upnpc="$(which upnpc)"; + test "$(echo $@ | grep -o [0-9]* | head -n 1)" -gt 1 || upnpc=true; + "$upnpc" $@ > ~/.gtk-gnutella/upnpc.log; +} + +gtk-gnutella-upnp-daemon() { + sleep 1; + echo ======= gtk-gnutella-upnp-daemon started ======== + while pgrep -x gtk-gnutella -u "$UID" >/dev/null; do + gnet_port="$(gtk-gnutella-listen-port)"; + gtk-gnutella-upnpc -r "$gnet_port" TCP "$gnet_port" UDP; + sleep 60; + done; + echo Shutting down gtk-gnutella-upnp-daemon... + gnet_port="$(gtk-gnutella-listen-port)"; + gtk-gnutella-upnpc -d "$gnet_port" TCP "$gnet_port" UDP; + echo ======= gtk-gnutella-upnp-daemon exited ======== +} + +gtk-gnutella-upnp-daemon & +gtk-gnutella $@; echo; +pkill -x sleep -P $!; +wait $!;