#!/bin/sh
# Change files from TWiki namespace to Randomnewname
# Globa;-replace Randomnewname
function process () {
    [ -f $1 -a "$1" != "mapname.sh" ] && { \
        grep -s -q "TWiki" $1 && {
            sed -e 's/TWiki::/Randomnewname::/g' $1 | \
            sed -e 's/new TWiki(/new Randomnewname(/g' | \
            sed -e 's/package TWiki;/package Randomnewname;/g' | \
            sed -e 's/TWiki Enterprise/Randomnewname/g' | \
            sed -e 's/TWiki Collaboration/Randomnewname Collaboration/g' | \
            sed -e 's/require TWiki/require Randomnewname/g' | \
            sed -e 's/TWikiCfg/RandomnewnameCfg/g' | \
            sed -e 's/use TWiki;/use Randomnewname;/g' | \
            sed -e "s/isa( *'TWiki' *)/isa('Randomnewname')/g" | \
            sed -e 's/TWiki Contributors/Randomnewname Contributors/g' | \
            sed -e 's./TWiki/./Randomnewname/.g' | \
            sed -e 's/TWiki\.org/Randomnewname.org/g' | \
            sed -e 's/TWiki\.spec/Randomnewname.spec/g' | \
            sed -e 's/TWiki\.pot/Randomnewname.pot/g' | \
            sed -e 's/TWiki\.pm/Randomnewname.pm/g' \
                > /tmp/blah;
            mv /tmp/blah $1;
        }
    }
}

function process_module () {
    echo "Processing $1";
    [ -d $1/lib/TWiki -a ! -d $1/lib/Randomnewname ] && \
        svn mv $1/lib/TWiki $1/lib/Randomnewname
    [ -d $1/data/TWiki -a ! -d $1/data/Randomnewname ] && \
        svn mv $1/data/TWiki $1/data/Randomnewname
    [ -d $1/pub/TWiki -a ! -d $1/pub/Randomnewname ] && \
        svn mv $1/pub/TWiki $1/pub/Randomnewname
    for f in `find $1 -name '\.svn' -prune -o -name '*.pm'`; do \
        process $f; done
    for f in `find $1 -name '\.svn' -prune -o -name '*.pl'`; do \
        process $f; done
    for f in `find $1 -name '\.svn' -prune -o -name '*.spec'`; do \
        process $f; done
    for f in `find $1 -name '\.svn' -prune -o -name '*.cfg'`; do \
        process $f; done
    for f in `find $1 -name '\.svn' -prune -o -name 'MANIFEST'`; do \
        process $f; done
    if [ -d $1/bin ]; then
        for f in `find $1/bin -name '\.svn' -prune -o -name '*'`; do \
            process $f; done
        for f in `find $1/bin -name '\.svn' -prune -o -name '\.*'`; do \
            process $f; done
    fi
}

# First map some specific files in the core
[ -f core/lib/TWiki.pm ] && svn mv core/lib/TWiki.pm core/lib/Randomnewname.pm
[ -f core/lib/TWiki.spec ] && svn mv core/lib/TWiki.spec core/lib/Randomnewname.spec
[ -f locale/TWiki.pot ] && svn mv locale/TWiki.pot locale/Randomnewname.pot
[ -f core/lib/TWiki/Configure/TWikiCfg.pm ] && \
    svn mv core/lib/TWiki/Configure/TWikiCfg.pm \
        core/lib/TWiki/Configure/RandomnewnameCfg.pm

process_module core
#process_module BehaviourContrib
#process_module ClassicSkin
#process_module CommentPlugin
#process_module EditTablePlugin
process_module EmptyPlugin
#process_module InterwikiPlugin
#process_module JSCalendarContrib
process_module MailerContrib
#process_module PatternSkin
#process_module PreferencesPlugin
#process_module RenderListPlugin
#process_module SlideShowPlugin
#process_module SmiliesPlugin
#process_module SpreadSheetPlugin
#process_module TablePlugin
#process_module TipsContrib
#process_module TinyMCEPlugin
process_module TopicUserMappingContrib
#process_module TwistyContrib
#process_module TwistyPlugin
#process_module WysiwygPlugin
