#! /bin/bash cache() ( path() { echo "$CACHE/$(echo "$*" | base64)" } get() { local path="$(path "$*")" if ! [ -f "$path" ]; then return 1 fi if wc -c "$path" | grep -q '^[ ]*0[ ]*$'; then return 1 fi local created="$(date -r "$path" +%s)" local now="$(date +%s)" if ((now-created > CACHE_DURATION)); then return 1 fi cat "$path" } put() { local path="$(path "$*")" tee "$path" } "$@" )