OK, so I think this works. It started out as a quick hack, then grew. It's
a script that pulls in the "Dr. Fun" cartoon (drawn M-F, one panel, similar
to "The Far Side", views it, then deletes it. It stores what day you're on
in ~/.df . It starts at the beginning of the archive (September, 1993) and
goes forward. If ~/.df does not exist, it will be created. I think I
quoted all instances of variables where it's necessary, so the script
shouldn't have a problem with $HOME containing a space.
Oh, if you don't have pdksh, wget, and xv, you'll need them; portability is
varying degrees of difficulty.
#! /bin/ksh
typeset -Z2 dateYY dateMM dateDD
typeset -Z6 date
pref_file="$HOME/.df"
[[ -e $pref_file ]] || echo 930924 > "$pref_file"
[[ -w $pref_file ]] || pref_file=/dev/null
[[ -s $pref_file ]] && {
date=$(<$pref_file)
if [[ ${#date} != 6 ]] ; then
echo "$pref_file is corrupt."
echo "${#date} chars"
exit 1
fi
dateYY=${date%????}
dateMM=$(( ${date#??} / 100))
dateDD=${date#????}
}
trap 'kill %1' EXIT
while : ; do
case $(date -d $dateYY$dateMM$dateDD +%a) in
Sat|Sun) ;;
*) date=$dateYY$dateMM$dateDD
file=df$date.jpg
wget -q ibiblio.org/Dave/Dr-Fun/df$dateYY$dateMM/$file
if [[ -r $file ]] ; then
{ xv -maxpect $file && echo $date > "$pref_file" ; } &
sleep 1
rm $file
wait
fi
esac
dateDD=$((dateDD + 1))
if [[ ( ($dateMM = 01 || $dateMM = 03 || $dateMM = 05 || $dateMM = 07 \
|| $dateMM = 08 || $dateMM = 10 || $dateMM = 12) && ($dateDD > 31) ) \
|| ( ($dateMM = 02) && ($dateDD > 29) ) \
|| ( ($dateMM = 04 || $dateMM = 06 || $dateMM = 09 || $dateMM = 11)\
&& ($dateDD > 30) ) ]] ; then
dateDD=1
dateMM=$((dateMM + 1))
if [[ $dateMM > 12 ]] ; then
dateMM=1
dateYY=$((dateYY + 1))
if [[ $dateYY > 99 ]] ; then
dateYY=0
fi
fi
fi
done
--
-eben ebQenW1@EtaRmpTabYayU.rIr.OcoPm home.tampabay.rr.com/hactar
He who will not reason is a bigot; he who cannot is a fool;
and he who dares not is a slave. -Sir William Drummond
This archive was generated by hypermail 2.1.3 : Fri Aug 01 2014 - 20:06:34 EDT