browser: wget-ifmodified script to download new caniuse data
[sheet.git] / tools / wget-ifmodified
1 #!/usr/bin/env sh
2
3 set -u
4
5 if [ -z "$1" ]
6 then
7         echo 'Usage: $0 <url> [<target>]' >&2
8         # download url to target location if modified
9         exit 64 # EX_USAGE
10 fi
11
12 source=$1
13 target=${2:-${source##*/}}
14
15 if [ -e "$target" ]
16 then
17         modified=$(stat -c%y -L "$target") &&
18         modified=$(date -R -d "$modified")
19         echo download since: $modified
20 fi
21
22 headers=${modified:+If-Modified-Since: $modified}
23 wget -nv --header="$headers" -O "$target.new" "$source" &&
24 mv "$target.new" "$target" ||
25 rm "$target.new" # clean up failed download (usually empty 304 response)
26