diff options
Diffstat (limited to 'cache.sh')
| -rwxr-xr-x | cache.sh | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/cache.sh b/cache.sh new file mode 100755 index 0000000..c84fe71 --- /dev/null +++ b/cache.sh @@ -0,0 +1,16 @@ +#!/bin/sh +set -o pipefail +: "${CACHE_AGE:=300}" +test -n "$CACHE_DIR" || exit 1 +cache="$CACHE_DIR/$(echo "$*" | base64)" +if test -f "$cache"; then + now="$(date +%s)" + mod="$(stat -c %Y "$cache")" + if test $((mod + CACHE_AGE)) -gt "$now"; then + if ! test -s "$cache"; then + exit 1 + fi + exec cat "$cache" + fi +fi +"$@" | tee "$cache" |
