stanley lieberimport6a3fde711 years agoHistory
37 lines · 826 B · rc
RawDownload
#!/usr/bin/env rc fn fltr_cache {    a=()    tmpf=()     proc=$1    shift     if(~ $#* 0) {        tmpf=/tmp/fmttmp.$pid        f=$tmpf        score=`{{tee $tmpf || exit 1} | sha1sum}    }    if not {        f=$1        if(~ $f */) {            score=`{du -an $f | sha1sum || exit 1} # XXX using -n(bytes) instead of -t(lastmod) because sitemap proc touches files in tree.            a=$f            f=/dev/null        }        if not {            score=`{sha1sum $f || exit 1}            score=$score(1)        }    }    cachedir=/tmp/fltr_cache/$score    mkdir -p $cachedir >[2]/dev/null     if(test -s $cachedir/$proc)        cat $cachedir/$proc    if not        if($proc $a < $f | tee $cachedir/$pid)            mv $cachedir/$pid $cachedir/$proc     rm $tmpf $cachedir/$pid >[2]/dev/null &}