Files
libcoap/scripts/api-version-bump.sh
T
Olaf Bergmann 8efab74066 scripts/api-version-bump.sh: require explicit version parameter
To avoid accidentally changing the API version, the script now aborts
if no new version other than the current API version has been
specified.
2021-04-14 13:06:15 +02:00

46 lines
1.6 KiB
Bash
Executable File

#! /bin/bash
if ! test -f configure.ac; then
>&2 echo "$(basename $0): script must be called from the package's top directory"
exit 1
fi
declare $(sed -ne '/^LIBCOAP_API_VERSION=[0-9]\+/{p; q}' configure.ac)
NEW_VERSION=${1:-$LIBCOAP_API_VERSION}
if test "x$NEW_VERSION" = "x$LIBCOAP_API_VERSION"; then
>&2 echo "no version change requested, exiting (current version is $LIBCOAP_API_VERSION)"
exit 1
fi
echo $(basename $0): increase version $LIBCOAP_API_VERSION to $NEW_VERSION
# command for move operations on version-controlled files and directories
MV="git mv"
move() {
source=$1
dest=$2
test -e "$1" && $MV "$1" "$2"
}
move include/coap$LIBCOAP_API_VERSION include/coap$NEW_VERSION
move libcoap-$LIBCOAP_API_VERSION.pc.in libcoap-$NEW_VERSION.pc.in
move libcoap-$LIBCOAP_API_VERSION.map libcoap-$NEW_VERSION.map
move libcoap-$LIBCOAP_API_VERSION.sym libcoap-$NEW_VERSION.sym
# sed pattern for include path prefix substitution
pat='^\(#include ["<]coap\)'$LIBCOAP_API_VERSION/
find \( -name \*.h -o -name \*.c \) \
-exec grep -q '^#include ["<]coap'$LIBCOAP_API_VERSION/ {} \; -print | \
(while read fn ; do test -f ${fn}.in || sed -i "s,$pat,\1$NEW_VERSION/," $fn ; done )
# Adjust LIBCOAP_API_VERSION in CMakeLists.txt
sed -i "s/^\(set(LIBCOAP_API_VERSION \+\)$LIBCOAP_API_VERSION\( *)\)/\1$NEW_VERSION\2/" CMakeLists.txt
# Adjust LibCoAPIncludeDir in win32/libcoap.props
sed -i "s/\(<LibCoAPIncludeDir>include\\\coap\)$LIBCOAP_API_VERSION/\1$NEW_VERSION/" win32/libcoap.props
# Finally, increase LIBCOAP_API_VERSION in configure.ac
sed -i "s/^\(LIBCOAP_API_VERSION=\)$LIBCOAP_API_VERSION/\1$NEW_VERSION/" configure.ac