#!/bin/bash #Update des dokuwiki/js/2010 #nur für debian gedacht #Download der neuesten Version von http://www.splitbrain.org/projects/dokuwiki #dieses Script und die neue dokuwiki-*.tgz müssen im selben Verzeichnis, wie die wikis liegen. #Voraussetzungen erstmal prüfen: if [ ! $UID -eq 0 ] ; then echo "Sie sind nicht root!" echo "Exit 1" exit 1; fi #auf ACL-Programm prüfen: if [ ! `which getfacl` ]; then echo "acl-Programme fehlen" #apt-get install acl exit 1; fi #prüfen ob das wikiupdate vorhanden ist. ls dokuwiki-* >/dev/null f=$? if [ ! $f -eq 0 ]; then echo "Neue Dokuwikidatei nicht im selben Verzeichnis vorhanden!!!" ls echo "Exit 1" exit 1 fi #testen ob zu viele TGZ-Dateien im Verzeichnis liegen wikinew="`ls dokuwiki-*`" echo $wikinew| grep -qi '.tgz ' && { echo "zu viele dokuwiki-*.tgz. Bitte nur eins!"; \ echo $wikinew; exit 1; } #Wiki auswählen: echo "Willkommen zum Dokuwikiupdate" echo "Hier eine Liste der vorhanden Wiki:" echo "" #ls -lgd *wiki* | grep "^d" | cut -d " " -f12; ls -d */ | cut -f1 -d'/' | grep wiki echo "" read -p "Welches Wiki soll upgedatet werden ? " wiki #Erstmal ein Backup des wiki erstellen: cp -avr $wiki $wiki.backup #datadir ermitteln datadir=`grep savedir $wiki/conf/local.php | cut -d "/" -f2 | cut -d "'" -f1` if [ -s $datadir ]; then echo "kein savedir in local.php vorhanden" datadir=`grep savedir $wiki/conf/dokuwiki.php | cut -d "/" -f2 | cut -d "'" -f1` if [ -s $datadir ]; then echo "kein savedir in dokuwiki.php vorhanden" datadir="data" fi fi #acls vom alten Verzeichnis sichern getfacl --recursive $wiki >$wiki.acl tar xvfz $wikinew wikinew=`basename $wikinew .tgz` #testen ob das Verzeichnis estellt werden konnte: f=$? if [ ! $f -eq 0 ]; then echo "Neues Dokuwikiverzeichnis nicht im selben Verzeichnis vorhanden!!!" ls echo "Exit 1" exit 1 fi #neue Dateien reinkopieren cp -avrf $wikinew/{*,.??*} $wiki/ #acls zurücksichern setfacl --restore=$wiki.acl chown -vR www-data $wiki/$datadir/media_attic chown -vR www-data $wiki/$datadir/media_meta read -p "pause" puffer #diverses löschen rm -rf $wikinew rm $wiki.acl rm $wiki/conf/msg #rm -rf $wiki/$datadir/cache/* rm -rf $wiki/$datadir/cache/messages.txt exit 0