summaryrefslogtreecommitdiffstats
path: root/utils/set_version
blob: 97c18c9e5b97286b5df79baf244827426f92759d (plain)
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/bash

if [ $# != 1 ]; then
    echo "Usage: $0 <new version number>"
    exit 1
fi

if [ ! -d ./src -a ! -f redhat.spec ]; then
    echo "Cannot find the ./src directory or the ./redhat.spec file"
    echo "Are you in the project root directory?"
    exit 2
fi

NEW_VERSION=$1
OLD_VERSION=$(cd src;python -c "from setup_common import *; print get_version();")

# Prepare ChangeLog entry for the python-dmidecode.spec file
TSTAMP="$(date +%a\ %b\ %d\ %Y)"
FNAME="$(git config user.name)"
EMAIL="$(git config user.email)"
CHLOG="$TSTAMP $FNAME <$EMAIL> - ${NEW_VERSION}-1"

# Prepare regexp script to modify python-dmidecode.spec
{
cat <<EOF2
,s/^Version: .*/Version: ${NEW_VERSION}/
,s/^Release: .*/Release: 1%{?dist}/
,s/%changelog/%changelog\\
* ${CHLOG}\\
- Update to new release\\
/
w
EOF2
} > .chversion

# Get confirmation of version change
cat <<EOF

  **
  **  Changing version number
  **

  Are you sure you want to change the version number?

     From: ${OLD_VERSION}
     To:   ${NEW_VERSION}

EOF

echo -n "  Please confirm: (yes/no) "
read conf

case $conf in
    yes|YES)
        echo
        echo " ** Updating src/version.h"
        printf ",s/^#define VERSION \".*\"/#define VERSION \"${NEW_VERSION}\"/\nw\n" | ed src/version.h 2>/dev/null

        echo " ** Updating contrib/python-dmidecode.spec"
        cat .chversion | ed contrib/python-dmidecode.spec 2> /dev/null
        if [ $? = 0 ]; then
            rm -f .chversion
        fi
        echo
        echo " ** git add src/version.h contrib/python-dmidecode.spec"
        git add src/version.h contrib/python-dmidecode.spec
        echo "-----------------------------------------------------------------------------------"
        git diff --cached
        echo "-----------------------------------------------------------------------------------"
        echo
        echo " **                                                                   **"
        echo " ** REMEMBER to COMMIT this change when you have validated the result **"
        echo " **                                                                   **"
        echo
        ;;
    *)
        echo
        echo
        echo " ** Not confirmed.  Aborting."
        echo
        ;;
esac