]> git.plutz.net Git - shcgi/commitdiff
require no external index.cgi
authorpaul <paul@plutz.net>
Sat, 13 Jun 2015 14:10:04 +0000 (14:10 +0000)
committerpaul <paul@plutz.net>
Sat, 13 Jun 2015 14:10:04 +0000 (14:10 +0000)
svn path=/trunk/; revision=2

index.cgi [moved from index.sh with 73% similarity]

similarity index 73%
rename from index.sh
rename to index.cgi
index 380baef093bcb9e28fb88201bc10c7f5a5c92517..6359a0ae353e009e9dcbfc8425c52b1244bf6112 100755 (executable)
--- a/index.sh
+++ b/index.cgi
@@ -2,50 +2,53 @@
 
 # Copyright 2014, 2015 Paul Hänsch
 #
-# This file is part of Serve0.
+# This file is part of shcgi.
 # 
-# Serve0 is free software: you can redistribute it and/or modify
+# shcgi 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.
 # 
-# Serve0 is distributed in the hope that it will be useful,
+# shcgi 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 Serve0.  If not, see <http://www.gnu.org/licenses/>. 
+# along with shcgi.  If not, see <http://www.gnu.org/licenses/>. 
 
 export LC_ALL=C
 
+# this program is supposed to be symlinked into a http root directory
+# we will use the http root as object storage (data directory) and call sub
+# programs from the directory in which the real executable resides
+# therefore we need to identify the code and data directories _EXEC and _DATA
+call="$0"
+real="$(readlink -f $call)"
+_DATA="$(dirname "$call")"  #storage directory
+_EXEC="${real%/shcgi/index.cgi}"  #execution directory
+
 # basic functions
 die() {
   echo "$@" >&2
   exit 1
 }
+
 debug() { #change to false to disable debugging
   #true && echo "$*" >>debug
   true && [ -n "$*" ] && echo -E "$*" >>/dev/stderr
   true && [ -z "$*" ] && tee /dev/stderr
 }
 
-# this program is supposed to be symlinked into a http root directory
-# we will use the http root as object storage (data directory) and call sub
-# programs from the directory in which the real executable resides
-# therefore we need to identify the code and data directories _EXEC and _DATA
-call="$0"
-real="$(readlink -f $call)"
-_EXEC="$(dirname "$real")"  #execution directory
-_DATA="$(dirname "$call")"  #storage directory
+data_dirs(){
+  # create directories for object storage
 
-[ -w "$_DATA" ] && [ -d "$_DATA" ] || die "storage directory must be writable"
-
-# create directories for object storage
-for each in "$@"; do
-  [ ! -e "$_DATA/$each" ] && mkdir "$_DATA/$each"
-  [ -w "$_DATA/$each" ] && [ -d "$_DATA/$each" ] || die "storage \"$_DATA/$each\" must be a writable directory"
-done
+  [ -d "$_DATA" -a -w "$_DATA" ] || die "storage directory must be writable"
+  for each in "$@"; do
+    [ ! -e "$_DATA/$each" ] && mkdir "$_DATA/$each"
+    [ -d "$_DATA/$each" -a -w "$_DATA/$each" ] || die "storage \"$_DATA/$each\" must be a writable directory"
+  done
+}
 
 # create htaccess file
 [ -f "$_DATA/.htaccess" ] || cat >"$_DATA/.htaccess" <<EOF