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"
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
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
echo "Configuration error, disabling $tag"
cp "$outfile" "$d/.autodl/conferr"
touch "$d/.autodl/disabled"
+ 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"
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
else
tag="`basename "$d"`"
fi
+ start=y
if [ -e "$d/.autodl/disable" ]; then
echo "disabling $tag per user request"
+ start=n
touch "$d/.autodl/disabled"
rm -f "$d/.autodl/disable"
if [ -r "$HOME/dc/autodl/run/$tag" ]; then
else
echo "could not find pid for $tag"
fi
- elif [ ! -r "$d/.autodl/sexpr" ]; then
- touch "$d/.autodl/disabled"
- echo "$tag lacks sexpr" >&2
- echo "$tag" >>"$HOME/dc/autodl/faulty"
- else
- if [ ! -e "$HOME/dc/autodl/run/$tag" ]; then
- if [ $((`date +%s` - $lastget)) -gt 20 ]; then
- getnext "$d" "$tag" &
- lastget=`date +%s`
- pid=$!
- echo "$pid" >"$HOME/dc/autodl/run/$tag"
+ fi
+ if [ -e "$d/.autodl/restart" ]; then
+ echo "restarting $tag per user request"
+ rm -f "$d/.autodl/restart"
+ if [ -r "$HOME/dc/autodl/run/$tag" ]; then
+ 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
+ fi
+ if [ $start = y ]; then
+ if [ ! -r "$d/.autodl/sexpr" ]; then
+ touch "$d/.autodl/disabled"
+ echo "$tag lacks sexpr" >&2
+ echo "$tag" >>"$HOME/dc/autodl/faulty"
+ else
+ if [ ! -e "$HOME/dc/autodl/run/$tag" ]; then
+ if [ $((`date +%s` - $lastget)) -gt 20 ]; then
+ getnext "$d" "$tag" &
+ lastget=`date +%s`
+ pid=$!
+ echo "$pid" >"$HOME/dc/autodl/run/$tag"
+ fi
fi
fi
fi