#!/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: " 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