#!/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
