#!/bin/sh . $(dirname $0)/preload.sh help() { zaf_err "$0 seconds cmd..." } seconds=$1 shift [ -z "$*" ] && help zaf_trc "zafcache($seconds): $ITEM_KEY,'$2' '$3' '$4' '$5' '$6' '$7' '$8' '$9'" if [ -z "$ITEM_KEY" ]; then key=$(echo $*|tr ' ' '_') else key="$(echo ${ITEM_KEY}|cut -d '[' -f 1)[$(shift; echo $*|tr ' ' ',')]" fi if ! zaf_fromcache "$key"; then zaf_fromcache "$key" >/dev/null 2>/dev/null [ $? -eq 3 ] && { zaf_err "Operation $key already in progress."; } if zaf_which at >/dev/null 2>/dev/null; then at -M now >/dev/null 2>/dev/null <"\$tmpf" | zaf_tocache_stdin "$key" "$seconds" ; [ -s \$tmpf ] && zaf_wrn <\$tmpf EOF else tmpf=$(zaf_tmpfile cache) $@ 2>"$tmpf" | zaf_tocache_stdin "$key" "$seconds" [ -s $tmpf ] && zaf_wrn <$tmpf fi fi