29 lines
543 B
Bash
29 lines
543 B
Bash
#! /bin/bash
|
|
|
|
cache() (
|
|
path() {
|
|
echo "$CACHE/$(echo "$*" | base64 | md5sum | awk '{print $1}')"
|
|
}
|
|
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"
|
|
}
|
|
"$@"
|
|
)
|
|
|