1 #!/bin/sh 2 # 3 # Christian Reis <kiko (at] async.com.br> 4 # 5 # Moves 6 # 7 # Example: 8 # 9 # blackjesus:~> ./move-faqwiz.sh 2\.1 3\.2 10 # Moving FAQ question 02.001 to 03.002 11 12 if [ x$2 = x ]; then 13 echo "Need 2 args: original_version final_version." 14 exit 2 15 fi 16 17 if [ ! -d data -o ! -d data/RCS ]; then 18 echo "Run this inside the faqwiz data/ directory's parent dir." 19 exit 2 20 fi 21 22 cut_n_pad() { 23 t=`echo $1 | cut -d. -f $2` 24 export $3=`echo $t | awk "{ tmp = \\$0; l = length(tmp); for (i = 0; i < $2-l+1; i++) { tmp = "0".tmp } print tmp }"` 25 } 26 27 cut_n_pad $1 1 prefix1 28 cut_n_pad $1 2 suffix1 29 cut_n_pad $2 1 prefix2 30 cut_n_pad $2 2 suffix2 31 if which tempfile >/dev/null; then 32 tmpfile=$(tempfile -d .) 33 elif [ -n "$RANDOM" ]; then 34 tmpfile=tmp$RANDOM.tmp 35 else 36 tmpfile=tmp$$.tmp 37 fi 38 file1=faq$prefix1.$suffix1.htp 39 file2=faq$prefix2.$suffix2.htp 40 41 echo "Moving FAQ question $prefix1.$suffix1 to $prefix2.$suffix2" 42 43 sed -e "s/$1\./$2\./g" data/$file1 > ${tmpfile}1 44 sed -e "s/$1\./$2\./g" data/RCS/$file1,v > ${tmpfile}2 45 46 if [ -f data/$file2 ]; then 47 echo "Target FAQ exists. Won't clobber." 48 exit 2 49 fi 50 51 mv ${tmpfile}1 data/$file2 52 mv ${tmpfile}2 data/RCS/$file2,v 53 mv data/$file1 data/$file1.orig 54 mv data/RCS/$file1,v data/RCS/$file1,v.orig 55 56