diff options
Diffstat (limited to 'extra/tpull.sh')
-rw-r--r-- | extra/tpull.sh | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/extra/tpull.sh b/extra/tpull.sh new file mode 100644 index 0000000..eaa2909 --- /dev/null +++ b/extra/tpull.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# This is a really simple script intended to be run as an action +# from transmission-remote-gtk. It uses rsync to fetch +# a torrent/torrents to a local directory (or put it somewhere +# remote and run it using ssh to there). + +# It also shows how we can call transmission-remote with +# connection details to find information about a torrent or +# manipulate it. + +# Example +# gnome-terminal -e "tpull.sh %{hostname} %{port} %{username}:%{password} %{id}[,] /srv/incoming/" + +if [ -z "$5" ]; then + echo "usage: <host> <port> <user:pass> <id> <dest>" + exit 1 +fi + +HOST=$1 +TPORT=$2 +TAUTH=$3 +IDS=$4 +DEST=$5 + +echo $IDS | sed "s/,/\n/g" | while read id; do + DETAILS=$(transmission-remote $HOST:$TPORT -n $TAUTH -t $id -i) + + if [ $? -ne 0 ]; then + read + exit 1 + fi + + LOCATION=$(echo "$DETAILS" | egrep '^\s+Location:' | cut -c 13-) + NAME=$(echo "$DETAILS" | egrep '^\s+Name:' | cut -c 9-) + + if [ -z "$LOCATION" -o -z "$NAME" ]; then + continue + fi + + FULLPATH="$LOCATION/$NAME" + + echo "Syncing $FULLPATH ..." + rsync -avPs "$HOST:$FULLPATH" "$DEST" +done |