source: trunk/SOURCE_TOOLS/arb_create_patch.sh

Last change on this file was 18912, checked in by westram, 3 years ago
  • target 'patch' always patches versus svn.
  • Property svn:executable set to *
File size: 2.1 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 [--svn]"
61    echo "--svn       force svn diff"
62    false
63else
64    shift
65    PREFER_SVN=0
66    while [ -n "$1" ]; do
67        if [ "$1" = "--svn" ]; then
68            PREFER_SVN=1
69            shift
70        fi
71    done
72
73    if [ ! -d "$ARBHOME" ]; then
74        echo "No patch created (ARBHOME undefined)"
75    else
76        if [ -d $ARBHOME/.git ] && [ ${PREFER_SVN} = 0 ]; then
77            USE_GIT=1
78            generatePatches
79        else
80            if [ -d $ARBHOME/.svn ]; then
81                USE_SVN=1
82                generatePatches
83            else
84                echo "No patch created (neighter SVN nor GIT checkout in ARBHOME)"
85            fi
86        fi
87    fi
88fi
89
Note: See TracBrowser for help on using the repository browser.