Created
March 2, 2012 20:39
-
-
Save fredsmith/1961132 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/bash | |
DEBUG="false"; | |
MAXCACHEAGE="60"; | |
COMMAND="false"; | |
while getopts "da:c:" optionName; do | |
case "$optionName" in | |
d) | |
DEBUG="true" | |
;; | |
a) | |
MAXCACHEAGE=$OPTARG; | |
;; | |
c) | |
COMMAND=$OPTARG; | |
;; | |
[?]) | |
echo "$0 - (C) 2012 Fred Smith <[email protected]>"; | |
echo "Usage: $0 -a <max cache age> -c \"<command>\""; | |
exit; | |
;; | |
esac | |
done | |
CLEANCOMMAND=$(echo "$COMMAND" | sed -e 's/ /_/' -e 's/\///'); | |
CACHEFILE="/tmp/cacheof-$CLEANCOMMAND.txt"; | |
$DEBUG && echo "Cache File is: $CACHEFILE"; | |
if test -f $CACHEFILE; then { | |
CACHEAGE=$(($(date +%s) - $(stat -c '%Y' "$CACHEFILE"))) | |
} else { | |
CACHEAGE="100000"; | |
} fi; | |
if test $CACHEAGE -lt $MAXCACHEAGE; then { | |
$DEBUG && echo "using cached version; $CACHEAGE seconds old." | |
cat $CACHEFILE; | |
exit; | |
} fi; | |
$COMMAND > $CACHEFILE; | |
cat $CACHEFILE; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
[15:42:50] derf@Ganymede[
/bin]$ cacheit -a 10 -d -c "date"/bin]$ cacheit -a 10 -d -c "date"Cache File is: /tmp/cacheof-date.txt
Fri Mar 2 15:44:52 EST 2012
[15:44:52] derf@Ganymede[
Cache File is: /tmp/cacheof-date.txt
using cached version; 2 seconds old.
Fri Mar 2 15:44:52 EST 2012
[15:44:54] derf@Ganymede[
/bin]$ cacheit -a 10 -d -c "date"/bin]$ cacheit -a 10 -d -c "date"Cache File is: /tmp/cacheof-date.txt
using cached version; 4 seconds old.
Fri Mar 2 15:44:52 EST 2012
[15:44:56] derf@Ganymede[
Cache File is: /tmp/cacheof-date.txt
using cached version; 6 seconds old.
Fri Mar 2 15:44:52 EST 2012
[15:44:58] derf@Ganymede[
/bin]$ cacheit -a 10 -d -c "date"/bin]$ cacheit -a 10 -d -c "date"Cache File is: /tmp/cacheof-date.txt
using cached version; 7 seconds old.
Fri Mar 2 15:44:52 EST 2012
[15:44:59] derf@Ganymede[
Cache File is: /tmp/cacheof-date.txt
using cached version; 8 seconds old.
Fri Mar 2 15:44:52 EST 2012
[15:45:00] derf@Ganymede[
/bin]$ cacheit -a 10 -d -c "date"/bin]$ cacheit -a 10 -d -c "date"Cache File is: /tmp/cacheof-date.txt
using cached version; 9 seconds old.
Fri Mar 2 15:44:52 EST 2012
[15:45:01] derf@Ganymede[
Cache File is: /tmp/cacheof-date.txt
using cached version; 9 seconds old.
Fri Mar 2 15:44:52 EST 2012
[15:45:01] derf@Ganymede[~/bin]$ cacheit -a 10 -d -c "date"
Cache File is: /tmp/cacheof-date.txt
Fri Mar 2 15:45:02 EST 2012