]> git.plutz.net Git - confetti/blobdiff - actions/static_file.sh
dynamic therapy section
[confetti] / actions / static_file.sh
diff --git a/actions/static_file.sh b/actions/static_file.sh
new file mode 100755 (executable)
index 0000000..0b16fc1
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/zsh
+
+# Copyright 2016 Paul Hänsch
+#
+# This file is part of Confetti.
+# 
+# Confetti is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# Confetti is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+# 
+# You should have received a copy of the GNU Affero General Public License
+# along with Confetti.  If not, see <http://www.gnu.org/licenses/>. 
+
+BR='
+'
+file="$(invalidate "${_GET[name]}" '\.' 'none')"
+file="$_EXEC/templates/$file"
+
+if [ -f "$file" ]; then
+  case "${file##*.}" in
+    png) printf 'Content-Type: image/png';;
+    html) printf 'Content-Type: text/html';;
+    txt) printf 'Content-Type: text/plain';;
+    *) printf 'Content-Type: application/octet-stream';;
+  esac
+  printf '\r\n'
+  printf 'Content-Length: %s\r\n' "$(stat -c %s "$file")"
+  printf '\r\n'
+  cat "$file"
+else
+  printf 'HTTP/1.1 404 Not Found\n\n'
+fi