#!/bin/bash set -a # script to repair bug induced by koalaskin v1.13: # some topic having a %META:TOPICPARENT{name="%TOPICPARENT%"}% in them # run from your "data" dir with write privileges (root or UID of apache) if [ ! -d _default ]; then echo "Not in wiki/data dir? aborting."; exit 1 fi ok=true for i in */*.txt; do if grep -q '%META:TOPICPARENT{name="%TOPICPARENT%"}%' "$i"; then ok=false grep '%META:TOPICPARENT{name=' "$i,v" | sed -e 's/ //g' | ( read TP; read PTP; if [ "$TP" = '%META:TOPICPARENT{name="%TOPICPARENT%"}%' ]; then otp="${PTP#*\"}";otp="${otp%\"*}" if test -e "${i%.txt}.lock"; then echo "***  Topic ${i%.txt} LOCKED! Could not fix now" who=`head -1 "${i%.txt}.lock"`; echo " $who" ls -l "${i%.txt}.lock" else if [ -n "$otp" ]; then echo "# Topic ${i%.txt} had as parent $otp, fixing." echo "/%META:TOPICPARENT{name=\"%TOPICPARENT%\"}% s/%TOPICPARENT%/$otp/ :w" | ex -s "$i" else echo "* Topic ${i%.txt} had no parent, fixing." echo "/%META:TOPICPARENT{name=\"%TOPICPARENT%\"}% d :w" | ex -s "$i" fi fi else echo "- Topic ${i%.txt} was already fixed?" fi ) fi done if $ok; then echo "***** Everything is ok *****" fi