]> git.plutz.net Git - shellwiki/blob - index.cgi
URL selection based on handlers
[shellwiki] / index.cgi
1 #!/bin/sh
2
3 . "${_EXEC:-${0%/*}}/cgilite/cgilite.sh"
4 . "${_EXEC}/cgilite/session.sh"
5 . "${_EXEC}/cgilite/file.sh"
6 . "${_EXEC}/cgilite/users.sh"
7 . "${_EXEC}/acl.sh"
8
9 mdfile(){
10   local page="$(PATH "$1")"
11
12   if   [ -f "$_DATA/pages/$page/#page.md" ]; then
13     printf %s\\n "$_DATA/pages/$page/#page.md"
14   elif [ -f "$_EXEC/pages/$page/#page.md" ]; then
15     printf %s\\n "$_EXEC/pages/$page/#page.md"
16   else
17     return 1
18   fi
19 }
20
21 wiki_text() {
22   # Print source text of a wiki page
23   # Get page from data or underlay dir
24   local page="$(PATH "$1")" mdfile
25
26   mdfile="$(mdfile "$page")" || return 4
27   acl_read "$page" || return 3
28   cat -- "$mdfile"
29 }
30
31 for handler in "$_EXEC"/handlers/*; do
32   . "$handler" && break
33 done
34
35 if [ $? != 0 ]; then
36   export ERROR_MSG="The presented URL schema cannot be handled"
37   theme_error 400
38 fi