#!/usr/bin/env rc #. 9.rc # Not really needed when calling from werc, only would be needed if you use fproc_cache.rc standalone # TODO: Allow to provide two arguments, second arg is a file name, use filename+size+mtime for hashing. # Useful when dealing with many big files (eg., thumb gallery generation). proc=$1 tmpfile=/tmp/fmttmp.$pid score=`{{tee $tmpfile || exit 1} | sha1sum} cachedir=/tmp/fproc_cache/$score mkdir -p $cachedir >[2]/dev/null if(test -s $cachedir/$proc) cat $cachedir/$proc if not if($proc < $tmpfile | tee $cachedir/$pid) mv $cachedir/$pid $cachedir/$proc rm $tmpfile $cachedir/$pid >[2]/dev/null &