X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=config%2Fdc-filtercmd;h=a0f01c8a36e7f7f1435a024098ae477cee28410e;hb=refs%2Fheads%2Fjava;hp=96444eb49e656d7b2000fee22ddcecdc80e37a07;hpb=d3372da97568d5e1f35fa19787c8ec8af93a0435;p=doldaconnect.git diff --git a/config/dc-filtercmd b/config/dc-filtercmd index 96444eb..a0f01c8 100755 --- a/config/dc-filtercmd +++ b/config/dc-filtercmd @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash cmd="$1" shift @@ -34,9 +34,82 @@ if [ "$cmd" = rmtag ]; then unset dcarg_tag . "$f" if [ "$dcarg_tag" = "$1" ]; then - rm "$f" - rm "${f%.info}" + base="${f%.info}" + rm -f "$base" "${base}.info" "${base}.tthstate" fi fi done fi + +if [ "$cmd" = remain ]; then + for f in "$HOME"/dc/resume/*.info; do + if [ ! -r "$f" ]; then + continue + fi + unset "${!dcarg_@}" + . "$f" + resfile="${f%.info}" + for id in "$@"; do + idt="${id%%:*}" + idd="${id#*:}" + match=n + if [ "$idt" = size ]; then + if [ "$idd" -eq "$filesize" ]; then + match=y + fi + elif [ "$idt" = hash ]; then + if [ "$idd" = "$dcarg_hash" ]; then + match=y + fi + elif [ "$idt" = all ]; then + match=y + fi + if [ "$match" = y ]; then + rfrem="$(wc -c <"$resfile" | sed 's/ //g')" + echo "size:$filesize" + echo "prog:$rfrem" + echo "name:$origname" + if [ -n "$dcarg_hash" ]; then + echo "hash:$dcarg_hash" + fi + fi + done + done +fi + +if [ "$cmd" = lsres ]; then + for f in "$HOME"/dc/resume/*.info; do + if [ ! -r "$f" ]; then + continue + fi + . "$f" + resfile="${f%.info}" + rfrem="$(wc -c <"$resfile" | sed 's/ //g')" + echo "id:${resfile##*/}" + echo "size:$filesize" + echo "prog:$rfrem" + echo "name:$origname" + if [ -e "${resfile}.lock" ]; then + echo "lock:yes" + else + echo "lock:no" + fi + if [ -n "$dcarg_hash" ]; then + echo "hash:$dcarg_hash" + fi + done +fi + +if [ "$cmd" = rmres ]; then + resfile="$HOME/dc/resume/$1" + if [ ! -r "${resfile}.info" ]; then + echo "err:notfound" + exit + fi + if [ -e "${resfile}.lock" ]; then + echo "err:locked" + exit + fi + rm -f "$resfile" "${resfile}.info" "${resfile}.tthstate" + echo "ok" +fi