From afda8873baf0ae1f7c90f8e8fea0c4dcaa836aeb Mon Sep 17 00:00:00 2001 From: Sebastien Estienne Date: Tue, 6 Sep 2005 17:41:26 +0000 Subject: * fix scripts * don't prepend / if path already contains one * fix a bug that prevents executing scripts git-svn-id: file:///home/lennart/svn/public/service-discovery-applet/trunk@10 3be567f1-68ff-0310-b24a-ad7cc433fd2f --- scripts/Makefile.am | 2 ++ scripts/_http._tcp.sh | 7 ++++++- scripts/_https._tcp.sh | 21 +++++++++++++++++++++ scripts/_sftp-ssh._tcp.sh | 30 ++++++++++++++++++++++++++++++ src/service-discovery-applet.in | 3 ++- 5 files changed, 61 insertions(+), 2 deletions(-) create mode 100755 scripts/_https._tcp.sh create mode 100755 scripts/_sftp-ssh._tcp.sh diff --git a/scripts/Makefile.am b/scripts/Makefile.am index abf39ed..9bcd0ed 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -1,7 +1,9 @@ scriptsdir = $(SCRIPTSDIR) scripts_SCRIPTS = \ _http._tcp.sh \ + _https._tcp.sh \ _ftp._tcp.sh \ + _sftp-ssh._tcp.sh \ _ssh._tcp.sh EXTRA_DIST = $(scripts_SCRIPTS) diff --git a/scripts/_http._tcp.sh b/scripts/_http._tcp.sh index 4ff8006..d196ea6 100755 --- a/scripts/_http._tcp.sh +++ b/scripts/_http._tcp.sh @@ -13,4 +13,9 @@ done HANDLER=`echo $TYPE | cut -f 1 -d "." | cut -f 2 -d "_"` -gnome-open "$HANDLER://$ADDRESS:$PORT/$TXT_path" +if [ ! -z "$TXT_path" ] +then + path=`echo $TXT_path | sed -e 's/^\///g'` +fi + +gnome-open "$HANDLER://$ADDRESS:$PORT/$path" diff --git a/scripts/_https._tcp.sh b/scripts/_https._tcp.sh new file mode 100755 index 0000000..d196ea6 --- /dev/null +++ b/scripts/_https._tcp.sh @@ -0,0 +1,21 @@ +#!/bin/sh +TYPE=`basename $0` +NAME=$1 +HOSTNAME=$2 +ADDRESS=$3 +PORT=$4 +TXTS=$5 + +for TXT in $TXTS +do + eval TXT_$TXT +done + +HANDLER=`echo $TYPE | cut -f 1 -d "." | cut -f 2 -d "_"` + +if [ ! -z "$TXT_path" ] +then + path=`echo $TXT_path | sed -e 's/^\///g'` +fi + +gnome-open "$HANDLER://$ADDRESS:$PORT/$path" diff --git a/scripts/_sftp-ssh._tcp.sh b/scripts/_sftp-ssh._tcp.sh new file mode 100755 index 0000000..0b6a62f --- /dev/null +++ b/scripts/_sftp-ssh._tcp.sh @@ -0,0 +1,30 @@ +#!/bin/sh +TYPE=`basename $0` +NAME=$1 +HOSTNAME=$2 +ADDRESS=$3 +PORT=$4 +TXTS=$5 + +for TXT in $TXTS +do + eval TXT_$TXT +done + +if [ ! -z "$TXT_u" ] +then + USER_NAME="-l $TXT_u" +else + USER_NAME=`zenity --entry --text "Login :"` + if [ ! -z "$USER_NAME" ] + then + USER_NAME="$USER_NAME@" + fi +fi + +if [ ! -z "$TXT_path" ] +then + path=`echo $TXT_path | sed -e 's/^\///g'` +fi + +sftp "$USERNAME$ADDRESS:$PORT/$path" diff --git a/src/service-discovery-applet.in b/src/service-discovery-applet.in index 5e076fc..7d56e35 100755 --- a/src/service-discovery-applet.in +++ b/src/service-discovery-applet.in @@ -80,8 +80,9 @@ def siocgifname(interface): def service_resolved(interface, protocol, name, type, domain, host, aprotocol, address, port, txt): print "Service data for service '%s' of type '%s' in domain '%s' on %s.%i:" % (name, type, domain, siocgifname(interface), protocol) print "\tHost %s (%s), port %i, TXT data: %s" % (host, address, port, avahi.txt_array_to_string_array(txt)) - if os.path.exists("@scriptsdir@/%s.sh"): + if os.path.exists("@scriptsdir@/%s.sh" % type): cmd = '@scriptsdir@/%s.sh "%s" %s %s %i "%s"' % (type, name, host, address, port," ".join(avahi.txt_array_to_string_array(txt))) + print cmd os.system(cmd) # if type == "_http._tcp": # -- cgit