]> git.plutz.net Git - serve0/blob - index.cgi
94309f3305a50b3690311c0e6a1cbc433fa755b8
[serve0] / index.cgi
1 #!/bin/sh
2
3 [ -z "${_EXEC%/}" ] && _EXEC=. || _EXEC="${_DATA%/}"
4 [ -z "${_DATA%/}" ] && _DATA=. || _DATA="${_DATA%/}"
5
6 . "$_EXEC/cgilite/cgilite.sh"
7 . "$_EXEC/widgets.sh"
8
9 filter="$(GET f)"
10 search="$(GET s)"
11 order="$(GET o |grep -m1 -xE 'Date|Name|Length' || printf Name)"
12 pagesize="$(COOKIE pagesize |grep -m1 -xE '[1-9][0-9]*' || printf 50)"
13
14 item="$(printf %s "${PATH_INFO#/}" |sed -r ':X /(^|\/)\.\.($|\/)/s;(^|[^/]*/)..(/|$);;; tX;')"
15
16 case $(GET a) in
17   setprefs)
18     printf 'Status: 303 See Other\r\n'
19     SET_COOKIE +$((86400 * 90)) pagesize="$(POST pagesize |grep -m1 -xE '[1-9][0-9]*' || printf 50)"
20     SET_COOKIE +$((86400 * 90))  fakemp4="$(POST  fakemp4 |grep -m1 -xE 'yes' || printf no)"
21     printf 'Location: %s\r\n\r\n' "$(POST ref)"
22     exit 0
23   ;;
24 esac
25
26 if [ "$item" = "/style.css" ]; then
27   . "$_EXEC/cgilite/file.sh"
28   [ -r "$_DATA/$item" ] && FILE "$_DATA/$item" \
29                         || FILE "$_EXEC/style.css"
30 elif [ -f "$_DATA/$item" ]; then
31   case $(GET a) in
32     tag)
33     ;;
34     thumbnail)
35     ;;
36     delete)
37     ;;
38     *) . "$_EXEC/cgilite/file.sh"
39       FILE "$_DATA/$item"
40     ;;
41   esac
42 elif [ -d "$_DATA/$item" ]; then
43   case $(GET a) in
44     multitag)
45     ;;
46     *) . "$_EXEC/list.sh"
47     ;;
48   esac
49 else
50   printf 'Status: 404 Not Found\r\n\r\n'
51   exit 0
52 fi