#!/usr/bin/env sh set -u if [ -z "$1" ] then echo 'Usage: $0 []' >&2 # download url to target location if modified exit 64 # EX_USAGE fi source=$1 target=${2:-${source##*/}} if [ -e "$target" ] then modified=$(stat -c%y -L "$target") && modified=$(date -R -d "$modified") echo download since: $modified fi headers=${modified:+If-Modified-Since: $modified} wget -nv --header="$headers" -O "$target.new" "$source" && mv "$target.new" "$target" || rm "$target.new" # clean up failed download (usually empty 304 response)