OSDN Git Service

082c6958f752ee4a49cf960b67baaeeeb004cce3
[pukiwiki/pukiwiki_devel.git] / create_patch.sh
1 #!/bin/bash
2
3 #usage: REV4=b44c SUFFIX=rc2 PREV=1.5.3 NEW=1.5.4 /path/to/create_patch.sh
4
5 set -uex
6
7 echo REV4: $REV4
8 echo SUFFIX: $SUFFIX
9
10 # Unzip all
11 for f in $(ls *.zip); do
12   echo $f
13   unzip $f
14 done
15
16 no_exit_diff()
17 {
18   set +e
19     diff $@
20   set -e
21 }
22
23 # Create patch packages
24 # PREV=1.5.3
25 # NEW=1.5.4
26 P2N=${PREV//./}to${NEW//./} # 153to154
27
28 no_exit_diff -urN pukiwiki-${PREV}_utf8 pukiwiki-${NEW}_utf8 > update_pukiwiki_${P2N}_utf8.patch
29 no_exit_diff -urN pukiwiki-${PREV}_eucjp pukiwiki-${NEW}_eucjp > update_pukiwiki_${P2N}_eucjp.patch
30 zip update_pukiwiki_${P2N}_utf8.patch.zip update_pukiwiki_${P2N}_utf8.patch
31 zip update_pukiwiki_${P2N}_eucjp.patch.zip update_pukiwiki_${P2N}_eucjp.patch
32 cp -p update_pukiwiki_${P2N}_utf8.patch.zip update_pukiwiki_${P2N}${SUFFIX}-${REV4}_utf8.patch.zip
33 cp -p update_pukiwiki_${P2N}_eucjp.patch.zip update_pukiwiki_${P2N}${SUFFIX}-${REV4}_eucjp.patch.zip
34
35 # Compare
36 cp -rp pukiwiki-${PREV}_utf8/ _upgrade_pukiwiki-${PREV}_utf8/
37 cp -rp pukiwiki-${PREV}_eucjp/ _upgrade_pukiwiki-${PREV}_eucjp/
38
39 pushd _upgrade_pukiwiki-${PREV}_utf8/
40   patch -p1 < ../update_pukiwiki_${P2N}_utf8.patch
41 popd
42
43 pushd _upgrade_pukiwiki-${PREV}_eucjp/
44   patch -p1 < ../update_pukiwiki_${P2N}_eucjp.patch
45 popd
46
47 set +e
48   diff -ur pukiwiki-${NEW}_utf8/ _upgrade_pukiwiki-${PREV}_utf8/
49   diff -ur pukiwiki-${NEW}_eucjp/ _upgrade_pukiwiki-${PREV}_eucjp/
50
51   DIFF_U=$(diff -ur pukiwiki-${NEW}_utf8/ _upgrade_pukiwiki-${PREV}_utf8/ | grep -v 'zip differ')
52   DIFF_E=$(diff -ur pukiwiki-${NEW}_eucjp/ _upgrade_pukiwiki-${PREV}_eucjp/ | grep -v 'zip differ')
53 set -e
54
55 if [ -n "$DIFF_U" ]; then
56   echo "Invalid patch (UTF-8)"
57   exit 101
58 fi
59
60 if [ -n "$DIFF_E" ]; then
61   echo "Invalid patch (EUC-JP)"
62   exit 102
63 fi
64