Fix the shoot-screen() function
s/exit/return/ since this function is to be called from an interactive shell.
# Takes several screen shots in a raw
# For usage, see shoot-screen -h
#
# MiKael, 2012-08
function shoot-screen() {
local prefix="screenshot-"
local ext="jpg"
local delay=4
local opt
local usage=0
while getopts "hp:e:d:" opt; do
case "$opt" in
(p) prefix=$OPTARG;;
(e) ext=$OPTARG;;
(d) delay=$OPTARG;;
(h) usage=1; break;;
(*) usage=2; break;;
esac
done
if (( usage != 0 )); then
print "Usage: $0 [-h] [-p prefix] [-e extension] [-d delay]" >&2
if (( usage == 1 )); then return 0; fi
return -1
fi
local n=0
while :; do
print -n 'Press Enter (type "quit" to leave) > '
read l
if [[ $l == "q" || $l == "quit" ]]; then break; fi
print -n "Get ready (waiting for $delay seconds)..."
sleep $delay
local filename
while :; do
(( n = n+1 ))
filename=$(printf "%s%03d.%s" $prefix n $ext)
[[ -f $filename ]] || break
done
print "\nCapture: $filename"
import $filename
if [[ $? != 0 ]]; then return $?; fi
print
done
}