shithub: werc

Download patch

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 &