~rodrigo-gadea-percona/percona-server/ps-docs

10 by Oleg Tsarev
propogate Oleg's patches
1
#!/usr/bin/env sh
2
a=$1
3
b=$2
4
patch_name=$3
5
prefix="[$patch_name]"
6
big_prefix="$prefix ===== "
7
echo "$big_prefix Regenerate patch $patch_name based thought $a and $b"
8
echo "$big_prefix Header is:"
9
cat $patch_name | head -n7;
10
echo "$big_prefix Ok, let's go:"
11
patch_name_new=$patch_name.new;
12
patch_name_split=$patch_name.split;
13
echo "$prefix Remove $patch_name_new if exists..."
14
rm -f $patch_name_new;
15
echo "$prefix Remove $patch_name_split if exists..."
16
rm -rf $patch_name_split;
17
echo "$prefix Create $patch_name_split"
18
mkdir $patch_name_split;
19
cd $patch_name_split;
20
echo "$prefix Add header"
21
cat ../$patch_name | head -n7 > ../$patch_name_new
22
echo "$prefix Split to separated files"
23
for filename in `splitdiff -a -d ../$patch_name | awk '{ print $2 }' | sed -e "s/>//g"`; do
24
    echo "$prefix extract diff metainformation from $filename"
25
    a_head=`cat $filename | head -n2 | head -n1`;
26
    b_head=`cat $filename | head -n2 | tail -n1`;
27
    a_path=`echo $a_head | awk '{ print $2 }'`;
28
    b_path=`echo $b_head | awk '{ print $2 }'`;
29
    diff_string="diff -ruN $a_path $b_path";
30
    echo "$big_prefix $filename metainformation is:";
31
    echo "$prefix $diff_string";
32
    echo "$prefix $a_head"
33
    echo "$prefix $b_head"
34
    echo "$big_prefix Update patch by $filename"    
35
    (cd ..; echo $diff_string >> $patch_name_new);
36
    (cat $filename | head -n2 | head -n1 >> ../$patch_name_new);
37
    (cat $filename | head -n2 | tail -n1 >> ../$patch_name_new);
38
    (cd ..; diff -ruN $a_path $b_path | tail -n+3 >> $patch_name_new);
39
done;
40
cd ..;
41
echo "$prefix Rename temporary patch to final"
42
cat $patch_name_new > $patch_name;
43
echo "$prefix Remove temporary files"
44
rm $patch_name_new;
45
rm -rf $patch_name_split;
46
echo "$big_prefix Complete"