- Notifications
You must be signed in to change notification settings - Fork 31.8k
/
Copy pathmove-faqwiz.sh
executable file
·55 lines (46 loc) · 1.22 KB
/
move-faqwiz.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/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