]> git.plutz.net Git - serve0/blob - index.cgi
frame for app rewrite
[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   ;;
23 esac
24
25 if [ -f "$_DATA/$item" ]; then
26   case $(GET a) in
27     tag)
28     ;;
29     download)
30     ;;
31     thumbnail)
32     ;;
33     delete)
34     ;;
35     *)
36     ;;
37   esac
38 elif [ -d "$_DATA/$item" ]; then
39   case $(GET a) in
40     multitag)
41     ;;
42     *) printf 'Content-Type: text/html;charset=utf-8\r\n\r\n'
43        "$_EXEC/cgilite/html-sh.sed" <<-EOF
44         [!DOCTYPE HTML]
45         [html [head [title Listing]
46         ] [body
47         $(w_search) $(w_prefs)
48         ] ]
49         EOF
50        exit 0
51     ;;
52   esac
53 else
54   printf 'Status: 404 Not Found\r\n\r\n'
55   exit 0
56 fi