]> git.plutz.net Git - shcgi/blobdiff - page.sh
derive structure which avoids multiple execution
[shcgi] / page.sh
diff --git a/page.sh b/page.sh
index ef9df2e3def9271c49ec455cf3d251df17ed4e68..5726ed9d8d39d2cf18e32647d3ca18891a3c394f 100755 (executable)
--- a/page.sh
+++ b/page.sh
 
 printf "Content-Type: text/html;charset=utf-8\n\n"
 
-PAGE="$(printf %s "${_GET[p]}" |egrep '^[a-zA-Z0-9_-]+$')"
-PAGE="${_EXEC}/pages/${PAGE}.sh"
-[ -x "$PAGE" ] || PAGE="${_EXEC}/pages/error.sh"
+[ -z "$PAGE" ] && PAGE="$(printf %s "${_GET[page]}" |egrep '^[a-zA-Z0-9_-]+$')"
+[ -x "${_EXEC}/pages/${PAGE}.sh" ] || PAGE="error"
 
-NAVIGATION() {
-  for each in "${_EXEC}"/pages/*.sh; do
-    link="$(printf %s "$each" |sed -r "s:^.*/([^/]*)\.sh$:\1:")"
-    title="$($each title)"
-    [ -n "$title" ] && printf '%s\n' "?p=$link $title"
-  done
-}
+[ -z "$NAVIGATION" ] && NAVIGATION=($(printf %s\\n "${_EXEC}"/pages/*.sh |sed -r 's;^.*/([^/]*)\.sh$;\1;'))
 
-. ${_EXEC}/templates/frame.html.sh
+CSS="${_EXEC}/templates/${PAGE}.css.sh"
+BODY="${_EXEC}/templates/${PAGE}.html.sh"
+
+. "${_EXEC}/pages/${PAGE}.sh"
+. "${_EXEC}/templates/frame.html.sh"