source: branches/tree/SOURCE_TOOLS/arb_create_patch.sh

Last change on this file was 17657, checked in by westram, 5 years ago
  • automatic patch generation:
    • generate patch versus git (if present)
    • generally simplified generated patches (was trying to be too smart)
  • Property svn:executable set to *
File size: 1.8 KB
Line 
1#!/bin/bash
2
3NAME=$1
4
5USE_SVN=0
6USE_GIT=0
7
8dump_vc_diff() {
9    if [ ${USE_GIT} = 1 ]; then
10        git diff
11    else
12        if [ ${USE_SVN} = 1 ]; then
13            svn diff
14        else
15            echo "Unknown/No version control"
16        fi
17    fi
18}
19
20generatePatches() {
21    cd $ARBHOME
22    PATCHDIR=./patches.arb
23    mkdir -p $PATCHDIR
24    DATE=`date '+%Y%m%d_%H%M%S'`
25    PATCHNAME=${NAME}_$DATE
26    PATCH=$PATCHDIR/$PATCHNAME.patch
27    FAKEPATCH=$PATCHDIR/fake.patch
28    LASTPATCH=$PATCHDIR/last.patch
29
30    dump_vc_diff > $PATCH.tmp ; mv $PATCH.tmp $PATCH
31
32    if [ -e $PATCH ]; then
33        if [ ! -s $PATCH ]; then
34            rm $PATCH
35            if [ ! -e $FAKEPATCH ]; then
36                echo "Index: No changes" > $FAKEPATCH
37                echo "===================================================================" >> $FAKEPATCH
38            fi
39            ln --force $FAKEPATCH $LASTPATCH
40            touch $FAKEPATCH
41            echo "No patch generated (no diff)"
42        else
43            DIFF=1
44            if [ -e $LASTPATCH ]; then
45                DIFF=`diff $PATCH $LASTPATCH | wc -l`
46            fi
47
48            if [ $DIFF = 0 ]; then
49                echo "No patch generated (same as last patch)"
50                rm $PATCH
51            else
52                ln --force $PATCH $LASTPATCH
53                ls -hog $PATCH
54            fi
55        fi
56    fi
57}
58
59if [ -z "$NAME" ]; then
60    echo "Usage: arb_create_patch.sh name"
61    false
62else
63    if [ ! -d "$ARBHOME" ]; then
64        echo "No patch created (ARBHOME undefined)"
65    else
66        if [ -d $ARBHOME/.git ]; then
67            USE_GIT=1
68            generatePatches
69        else
70            if [ -d $ARBHOME/.svn ]; then
71                USE_SVN=1
72                generatePatches
73            else
74                echo "No patch created (neighter SVN nor GIT checkout in ARBHOME)"
75            fi
76        fi
77    fi
78fi
79
Note: See TracBrowser for help on using the repository browser.