ref: 41bc14de01682065fd6156cb4bf7a5e8f8342fa5
parent: 2d6dca4856951a521280c8bde46bdaae0719c8ae
author: uriel <uriel@engel.se.cat-v.org>
date: Wed Jan 7 18:50:49 EST 2009
Minor optimizations and reliability improvments to fproc_cache.
--- a/bin/fproc_cache.rc
+++ b/bin/fproc_cache.rc
@@ -1,8 +1,9 @@
#!/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}
@@ -11,9 +12,8 @@
if(test -s $cachedir/$proc)
cat $cachedir/$proc
-if not {
- # XXX For reliability mv should not be called unless both $proc and tee suceed
- $proc < $tmpfile | tee $cachedir/$pid
- mv $cachedir/$pid $cachedir/$proc
-}
-rm $tmpfile >[2]/dev/null
+if not
+ if($proc < $tmpfile | tee $cachedir/$pid)
+ mv $cachedir/$pid $cachedir/$proc
+
+rm $tmpfile $cachedir/$pid >[2]/dev/null &