1#!/bin/sh
2set -e
3
4if test "x$GDAL_SHA1SUM" != "x"; then
5        if test -f gdal_version.h; then
6                cp gdal_version.h gdal_version.h.bak
7        else
8                touch gdal_version.h.bak
9        fi
10        echo "/* This is a generated file from gdal_version.h.in. DO NOT MODIFY !!!! */" > gdal_version.h.new
11        echo "" >> gdal_version.h.new
12        cat gdal_version.h.in >> gdal_version.h.new
13        if grep dev gdal_version.h.in >/dev/null; then
14            sed -i.bak "s/dev/dev\\-$GDAL_SHA1SUM/" gdal_version.h.new && rm gdal_version.h.new.bak
15        else
16            sed -i.bak "s/\(GDAL_RELEASE_NAME\)\(.*\"\)\(.*\)\"/\1\2\3-$GDAL_SHA1SUM\"/" gdal_version.h.new && rm gdal_version.h.new.bak
17        fi
18        if test "x$GDAL_RELEASE_DATE" != "x"; then
19            sed -i.bak "s/define GDAL_RELEASE_DATE.*/define GDAL_RELEASE_DATE     $GDAL_RELEASE_DATE/" gdal_version.h.new && rm gdal_version.h.new.bak
20        fi
21        diff -u gdal_version.h.new gdal_version.h.bak >/dev/null || \
22            (echo "Update gdal_version.h"; \
23             cp gdal_version.h.new gdal_version.h)
24        rm -f gdal_version.h.bak
25        rm -f gdal_version.h.new
26elif git log -1 >/dev/null 2>/dev/null && grep dev gdal_version.h.in >/dev/null; then
27        REV=$(git log -1 --format="%h")
28        DATE=$(git log -1 --date=format:'%Y%m%d' --format="%ad" 2>/dev/null) || DATE=""
29        if git status --porcelain -uno | grep . >/dev/null; then REV="$REV-dirty"; fi
30        if test -f gdal_version.h; then
31                cp gdal_version.h gdal_version.h.bak
32        else
33                touch gdal_version.h.bak
34        fi
35        echo "/* This is a generated file from gdal_version.h.in. DO NOT MODIFY !!!! */" > gdal_version.h.new
36        echo "" >> gdal_version.h.new
37        cat gdal_version.h.in >> gdal_version.h.new
38        sed -i.bak "s/dev/dev\\-$REV/" gdal_version.h.new && rm gdal_version.h.new.bak
39        if test "$DATE" != ""; then
40                sed -i.bak "s/define GDAL_RELEASE_DATE.*/define GDAL_RELEASE_DATE     $DATE/" gdal_version.h.new && rm gdal_version.h.new.bak
41        fi
42        diff -u gdal_version.h.new gdal_version.h.bak >/dev/null || \
43            (echo "Update gdal_version.h"; \
44             cp gdal_version.h.new gdal_version.h)
45        rm -f gdal_version.h.bak
46        rm -f gdal_version.h.new
47else
48        echo "/* This is a generated file from gdal_version.h.in. DO NOT MODIFY !!!! */" > gdal_version.h.new
49        echo "" >> gdal_version.h.new
50        cat gdal_version.h.in >> gdal_version.h.new
51        diff -u gdal_version.h.new gdal_version.h 2>/dev/null >/dev/null || \
52            (echo "Update gdal_version.h"; \
53             cp gdal_version.h.new gdal_version.h)
54        rm -f gdal_version.h.new
55fi
56