notea-de-me/crawler/cache.sh

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"
}
"$@"
)