#!/bin/sh
#
# Christian Reis <kiko@async.com.br>
#
# Moves 
# 
# Example:
#
#   blackjesus:~> ./move-faqwiz.sh 2\.1 3\.2
#   Moving FAQ question 02.001 to 03.002

if [ x$2 = x ]; then
    echo "Need 2 args: original_version final_version."
    exit 2
fi

if [ ! -d data -o ! -d data/RCS ]; then
    echo "Run this inside the faqwiz data/ directory's parent dir."
    exit 2
fi

cut_n_pad() {
    t=`echo $1 | cut -d. -f $2`
    export $3=`echo $t | awk "{ tmp = \\$0; l = length(tmp); for (i = 0; i < $2-l+1; i++) { tmp = "0".tmp } print tmp  }"`
}

cut_n_pad $1 1 prefix1
cut_n_pad $1 2 suffix1
cut_n_pad $2 1 prefix2
cut_n_pad $2 2 suffix2
if which tempfile >/dev/null; then
    tmpfile=$(tempfile -d .)
elif [ -n "$RANDOM" ]; then
    tmpfile=tmp$RANDOM.tmp
else
    tmpfile=tmp$$.tmp
fi
file1=faq$prefix1.$suffix1.htp
file2=faq$prefix2.$suffix2.htp

echo "Moving FAQ question $prefix1.$suffix1 to $prefix2.$suffix2" 

sed -e "s/$1\./$2\./g" data/$file1 > ${tmpfile}1
sed -e "s/$1\./$2\./g" data/RCS/$file1,v > ${tmpfile}2

if [ -f data/$file2 ]; then
    echo "Target FAQ exists. Won't clobber."
    exit 2
fi

mv ${tmpfile}1 data/$file2
mv ${tmpfile}2 data/RCS/$file2,v
mv data/$file1 data/$file1.orig
mv data/RCS/$file1,v data/RCS/$file1,v.orig

