#!/usr/bin/env sh set -u if [ -z "$1" ] then echo 'Usage: $0 [-v] []' >&2 # download url to target location if modified exit 64 # EX_USAGE fi verbose= case "$1" in -v) verbose=1 shift ;; esac source=$1 target=${2:-${source##*/}} if [ -e "$target" ] then modified=$(stat -c%y -L "$target") && modified=$(date -R -d "$modified") [ $verbose ] && 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)