file_type(){
case ${1##*.} in
- html|html) printf 'text/html';;
css) printf 'text/css';;
- js) printf 'text/javascript';;
- txt) printf 'text/plain';;
- sh) printf 'text/shellscript';;
+ gif) printf 'image/gif';;
+ html|html) printf 'text/html';;
jpg|jpeg) printf 'image/jpeg';;
+ js) printf 'text/javascript';;
+ m3u8) printf 'application/x-mpegURL';;
+ m4a) printf 'audio/mp4';;
+ m4s) printf 'video/iso.segment';;
+ m4v|mp4) printf 'video/mp4';;
+ mpd) printf 'application/dash+xml';;
+ ogg) printf 'audio/ogg';;
+ pdf) printf 'application/pdf';;
png) printf 'image/png';;
+ sh) printf 'text/x-shellscript';;
svg) printf 'image/svg+xml';;
- gif) printf 'image/gif';;
+ tex) printf 'text/x-tex';;
+ txt) printf 'text/plain';;
+ short) printf 'text/prs.shorthand';;
+ ts) printf 'video/MP2T';;
webm) printf 'video/webm';;
- mp4) printf 'video/mp4';;
- ogg) printf 'audio/ogg';;
xml) printf 'application/xml';;
*) printf 'application/octet-stream';;
esac
file_size="$(stat -Lc %s "$file")"
file_date="$(stat -Lc %Y "$file")"
- http_date="$(date -uRd @$file_date)"
- http_date="${http_date%+0000}GMT"
+ http_date="$(date -ud "@$file_date" +"%a, %d %b %Y %T GMT")"
cachedate="$(
# Parse the allowable date formats from Section 3.3.1 of
# https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html