#!/bin/ksh # # @(#)$Id: cache.sh,v 1.9 2002/11/28 13:55:14 peter Exp $ GNU (C) by Peter Klausner 2003 # # NAME: # cache - quick'n dirty page caching for TWiki # # SYNOPSIS: # Identical to TWiki's view # # DESCRIPTION: # Rename original view to render # Link this to 'view' # # SEE ALSO: # TWiki:Plugins/CacheAddOn view fresh # # customize... #data=/var/twiki/data data=/data/www/jobjects.com/public/www08/data #cache=/var/twiki/cache cache=/data/www/jobjects.com/public/www08/cache # debug... # exec 2> /tmp/twiki.view.log # set -x entry=$cache/`echo "$PATH_INFO?$QUERY_STRING" | sed ' s/%/%25/g s/ /%20/g s/ /%09/g s/!/%21/g s/"/%22/g s/#/%23/g s/\\$/%24/g s/\&/%26/g s/'\''/%27/g s/(/%28/g s/)/%29/g s/\*/%2a/g s/+/%2b/g s/,/%2c/g s/-/%2d/g s/\./%2e/g s/\//%2f/g s/:/%3a/g s/;/%3b/g s//%3e/g s/?/%3f/g s/@/%40/g s/\[/%5b/g s/\\\\/%5c/g s/\]/%5d/g s/\^/%5e/g s/_/%5f/g s/\`/%60/g s/{/%7b/g s/|/%7c/g s/}/%7d/g s/~/%7e/g '` #test -d "$entry" && entry="$entry/WebHome." if [[ $PATH_INFO == @(/Main|/TWiki|/JObjects/Contact)* ]]; then exec ./render "$@" elif [ "$entry" -nt "$data/$PATH_INFO.txt" ]; then exec cat "$entry" else exec ./render "$@" | tee "$entry" 2>/dev/null fi