X-Git-Url: http://dolda2000.com/gitweb/?p=utils.git;a=blobdiff_plain;f=autodlctl;h=8837b4786b5a2752b66b050aef87ef25659c5750;hp=78ef0e697e3b2dc2066d0cb34272305f930ef94c;hb=32dd9fcf39b6f6fe560d3a8268b9cce2c8a9b116;hpb=07878795a599200feca71c101756de5757b2e8f0 diff --git a/autodlctl b/autodlctl index 78ef0e6..8837b47 100755 --- a/autodlctl +++ b/autodlctl @@ -22,7 +22,7 @@ function getnext fi unset badsizesl if [ -r "$d/.autodl/badsizes" ]; then - badsizesl="$(sed -n "s/^0*$curep \(.*\)$/\1/p" "$d/.autodl/badsizes")" + badsizesl="$(sed -n "s/^0*$curep \([^#]*\)\( *#.*\)\?$/\1/p" "$d/.autodl/badsizes")" fi if [ -n "$badsizesl" ]; then read -a badsizes <<<"$badsizesl" @@ -37,7 +37,11 @@ function getnext done fi infofile="$d/.autodl/rtinfo" - args=(-e "$fsexpr" -t "$tag $curep" -I "$infofile") + estatfile="$d/.autodl/estat" + args=(-e "$fsexpr" -t "$tag $curep" -I "$infofile" -E "$estatfile" -x "curep=$curep") + if [ -e "$d/.autodl/wait" ]; then + args=("${args[@]}" -w) + fi if [ -r "$d/.autodl/uarg" ]; then uarg="`cat "$d/.autodl/uarg"`" elif [ -e "$d/.autodl/autouarg" ]; then @@ -55,6 +59,10 @@ function getnext trap "intr=y; kill -INT $pid" USR1 INT wait $pid stat=$? + if [ -r "$estatfile" ]; then + estat="`cat "$estatfile"`" + rm -f "$estatfile" + fi if [ "$intr" = y ]; then echo "$tag interrupted" else @@ -71,7 +79,7 @@ function getnext echo "$tag" >>"$HOME/dc/autodl/faulty" fi else - echo "episode $curep of $tag done" + echo "episode $curep of $tag done (estat: \"$estat\")" case "$epfrom" in badlist) echo -en "${tag}\n${curep}\n" >>"$HOME/dc/autodl/baddone" @@ -91,8 +99,14 @@ function getnext fi ;; curep) - echo -en "${tag}\n${curep}\n" >>"$HOME/dc/autodl/done" - let curep++ + if [ "$estat" = dbl ]; then + echo -en "${tag}\n${curep}\n" >>"$HOME/dc/autodl/done" + echo -en "${tag}\n$((${curep} + 1))\n" >>"$HOME/dc/autodl/done" + let curep+=2 + else + echo -en "${tag}\n${curep}\n" >>"$HOME/dc/autodl/done" + let curep++ + fi echo "$curep" >"$d/.autodl/curep" if [ -r "$d/.autodl/maxep" ]; then if [ "$curep" -gt "`cat "$d/.autodl/maxep"`" ]; then @@ -182,6 +196,10 @@ while [ "$done" != y ]; do pid="`cat "$HOME/dc/autodl/run/$tag"`" echo "sending SIGUSR1 to $pid" kill -USR1 "$pid" + while [ -e "$HOME/dc/autodl/run/$tag" ]; do + echo "waiting for it to exit" + sleep 1 + done else echo "could not find pid for $tag" fi