#!/bin/bash
# TWikiNonRootInstaller
# Does the basic steps of the Installation Guide for a NonRoot Installation
# http://twiki.org/cgi-bin/view/TWiki/TWikiInstallationGuide
# Testet on a Debian NonRoot Account, 
# adapt the respetive Variables where appropriate.
# Revision History:
# UweWahser 10.12.2004 Inital Version

clear
echo ---- Starting TWiki install without root-access ...
     site=www.your-site.de
echo site=$site
     user=$(whoami)
echo user:            $user
     lang=$1
echo language:        $lang
echo - Step 1: Create and Configure the Directories 
echo Home:            $HOME
     inst=~+
echo Inst. Dir.:      $inst
     loc=~/twiki 
     mkdir $loc
echo Private BaseDir: $loc
     www=public_html
     htm=~/$www
     mkdir $htm 
     chmod 755 $htm
echo Web Dir:         $htm
     pub=$htm/twiki 
     mkdir $pub 
echo Public BaseDir:  $pub
     twgz=$inst/TWiki20040901.tar.gz
echo TWiki Shipment: $twgz
#    ftp> get TWiki.tar.gz
     gunzip $twgz 
     twtar=$inst/TWiki20040901.tar
echo TWiki tar_ball: $twtar
     tar -xvf $twtar
     cp $inst/twiki/bin/setlib.cfg $inst/twiki/bin/setlib.cfg.org
     sed -e "s/\(\$twikiLibPath = \).*\(;\)/\1\'\/home\/${user}\/${www}\/twiki\/lib\'\2/g"  \
         $inst/twiki/bin/setlib.cfg.org > $inst/twiki/bin/setlib.cfg
     
echo - Step 2: Set File Permissions 
     find $inst/twiki/data -name "*.txt" | xargs chmod 664
     find $inst/twiki/data -type d | xargs chmod 775
     find $inst/twiki/pub -type d | xargs chmod 775
     cd $inst/twiki/data
     find . -name *,v -exec perl -pi~ -e "$. <= 10 && s/nobody:/${user}:/ " {} \;
     find . -name *,v~ -exec rm -f {} \;

echo - Step 3: Set the Main Configuration File 
     cp $inst/twiki/lib/TWiki.cfg $inst/twiki/lib/TWiki.cfg.org
     sed -e "s/\(\$defaultUrlHost *= \).*\(;\)/\1\'http\:\/\/${site}\'\2/g"              \
         -e "s/\(\$scriptUrlPath *= \).*\(;\)/\1\'\/\~${user}\/twiki\/bin\'\2/g"         \
         -e "s/\(\$dispViewPath *= \).*\(;\)/\1\'\/view\'\2/g"    \
         -e "s/\(\$scriptUrlPath *= \).*\(;\)/\1\'\/\~${user}\/twiki\/bin\'\2/g"         \
         -e "s/\(\$pubUrlPath *= \).*\(;\)/\1\'\/\~${user}\/twiki\/pub\'\2/g"          \
         -e "s/\(\$pubDir *= \).*\(;\)/\1\'\/home\/${user}\/${www}\/twiki\/pub\'\2/g"            \
         -e "s/\(\$templateDir *= \).*\(;\)/\1\'\/home\/${user}\/twiki\/templates\'\2/g" \
         -e "s/\(\$dataDir *= \).*\(;\)/\1\'\/home\/${user}\/twiki\/data\'\2/g"          \
         -e "s/\(\$wikiHomeUrl *= \).*\(;\)/\1\'http\:\/\/${site}\/twiki'\2/g"           \
         $inst/twiki/lib/TWiki.cfg.org > $inst/twiki/lib/TWiki.cfg

#    Step 4: Configure Site-Wide Email Preferences 

#    Step 5: Finish Up from Your Browser 

echo - Additional Server-Level Options 
echo   ... need to be done manually

echo - Enabling Authentication of Users
     sed -e "s/\!FILE_path_to_TWiki\!/\/home\/${user}\/twiki/g"  \
         -e "s/\!URL_path_to_TWiki\!/\~${user}\/twiki/g"    \
         $inst/twiki/bin/.htaccess.txt > $inst/twiki/bin/.htaccess
     chmod 644 $inst/twiki/bin/.htaccess
#     cp -f $inst/data..htpasswd $inst/data/.htpasswd
#     chmod 644 $inst/data/.htpasswd
     cp -f $inst/twiki/data/TWiki/TWikiRegistrationPub.txt $inst/twiki/data/TWiki/TWikiRegistration.txt
     cp -f $inst/twiki/data/TWiki/TWikiRegistrationPub.txt,v $inst/twiki/data/TWiki/TWikiRegistration.txt,v

echo - Move directories to their final Destinations
     mv -f $inst/twiki/bin $pub
     mv -f $inst/twiki/lib $pub
     mv -f $inst/twiki/pub $pub
     mv -f $inst/twiki/data $loc
     mv -f $inst/twiki/templates $loc

echo - go back home
     cd $inst
