]> git.plutz.net Git - cgilite/blobdiff - static.sh
Bugfix: keep last post element without appending empty element
[cgilite] / static.sh
index c86ed9f971b334a5f374f5feb9857d38765a0ab9..ec860c6efb3a8a10158a1233ad7fdebcd5ce2eda 100755 (executable)
--- a/static.sh
+++ b/static.sh
 # along with shcgi.  If not, see <http://www.gnu.org/licenses/>. 
 
 
-unset length date file
-file="$_EXEC/static/$STATIC"
+unset length date file suffix
+file="$1"
 date="$(stat -c %Y "$file")"
 
+# allow overriding magic file recognition
+# don't use this if `file` returns type correctly
+declare -A suffix
+suffix[css]="text/css"
+
 if [ -x "$file" -o \! -r "$file" -o \! -f "$file" ]; then
-  printf 'HTTP/1.1 403 Forbidden\n\n'
+  printf 'HTTP/1.1 403 Forbidden\r\n\r\n'
 elif [ "$date" = "$HTTP_IF_NONE_MATCH" ]; then
-  printf 'HTTP/1.1 304 Not Modified\n\n'
+  printf 'HTTP/1.1 304 Not Modified\r\n\r\n'
 else
   length="$(stat -c %s "$file")"
-  magic="$(file -bi "$file")"
+  magic="${suffix[${file##*.}]:-$(file -bi "$file")}"
 
   printf 'Etag: %s\r\n' "$date"
   printf 'Content-Type: %s\r\n' "${magic:-all/all}"