support gitweb subdirs
[iankelling.org] / setup.sh
index 3230bba9fca6b75796a7bc5337473f3a42218965..8eb53b43213df9d849cc92b9bebfcda502c20982 100755 (executable)
--- a/setup.sh
+++ b/setup.sh
@@ -20,7 +20,8 @@
 set -eE -o pipefail
 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
 
-cd "${BASH_SOURCE%/*}"
+script_dir=$(readlink -f "${BASH_SOURCE%/*}")
+cd "$script_dir"
 
 domain=${1:-iankelling.org} # use argument for testing site
 gitroot=/a/bin/githtml
@@ -75,12 +76,12 @@ push @stylesheets, "/gitweb-site.css";
 push @stylesheets, "/common.css";
 our \$favicon = '/assets/favicon.png';
 # default is 25, cuts off descriptions.
-our $projects_list_description_width = 40;
+our \$projects_list_description_width = 40;
 # a bit superflous since they are all me
-our $omit_owner = true;
+our \$omit_owner = true;
 # highlight scripts with no extension, uses a patch
 # that is on it's way upstream.
-our $highlight_force = 1;
+our \$highlight_force = 1;
 EOF
 
 apache-site - $domain <<EOF
@@ -91,6 +92,11 @@ apache-site - $domain <<EOF
   AddHandler cgi-script .py
 </Directory>
 
+<Directory "/var/www/$domain/html/cgi">
+  Options +ExecCGI
+  SetHandler cgi-script
+</Directory>
+
 # redirect some old paths when I was using jekyll.
 Redirect permanent /10-14-2014/On2-vote-results.html /blog/on2-vote-results.html
 Redirect permanent /09-29-2014/say-On2.html /blog/say-on2.html
@@ -152,8 +158,19 @@ _git_desc_readme() {
         break
     done < README*
 }
+
+dirs=()
+for d in $gitroot/*; do
+    if [[ -d $d && ! -L $d ]]; then
+        for sub in $d/*; do
+            dirs+=($sub)
+        done
+    else
+        dirs+=($d)
+    fi
+done
 gitweb_descriptions() {
-    for d in $gitroot/*; do
+    for d in ${dirs[@]}; do
         d=$(readlink -f $d)
         cd $d/..
         e ${PWD##*/}
@@ -178,4 +195,5 @@ gitweb_descriptions() {
 
 gitweb_descriptions
 
-./build.rb
+$script_dir/build.rb
+s lnf -T $script_dir/_site /var/www/$domain/html