25 lines
426 B
Bash
25 lines
426 B
Bash
|
#!/bin/bash
|
||
|
#Arguments
|
||
|
CMD=$2
|
||
|
CACHE_TIME=$1
|
||
|
|
||
|
#Constants
|
||
|
TMPDIR="/tmp/cache"
|
||
|
|
||
|
[ -d "$TMPDIR" ] || mkdir -p "$TMPDIR"
|
||
|
|
||
|
HASH=$(echo "$CMD" | base64)
|
||
|
CACHE_FILE="$TMPDIR/$HASH"
|
||
|
|
||
|
if [ -f "$CACHE_FILE" ]; then
|
||
|
CACHE_AGE=$[ $(date +"%s") - $(stat -c "%Y" "$CACHE_FILE") ]
|
||
|
if [ $CACHE_AGE -lt $CACHE_TIME ]; then
|
||
|
cat "$CACHE_FILE"
|
||
|
else
|
||
|
$CMD | tee "$CACHE_FILE"
|
||
|
fi
|
||
|
else
|
||
|
$CMD | tee "$CACHE_FILE"
|
||
|
fi
|
||
|
|