46 lines
990 B
Bash
46 lines
990 B
Bash
|
#/bin/sh
|
||
|
|
||
|
ver_gt() {
|
||
|
[ "$1" != "$2" ] && [ "$2" == "$(echo "$1\n$2" | sort -V | head -n1)" ]
|
||
|
}
|
||
|
|
||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||
|
PROJECT_ROOT="$(dirname ${SCRIPT_DIR})"
|
||
|
CUR_VSN=$(bash $SCRIPT_DIR/extract_version.sh)
|
||
|
NEW_VSN="$1"
|
||
|
|
||
|
|
||
|
check_ver() {
|
||
|
if [[ $NEW_VSN =~ ^[0-9.]+$ ]]; then
|
||
|
:
|
||
|
else
|
||
|
echo "Invalid version '$NEW_VSN'"
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
check_ver_increase() {
|
||
|
if ! ver_gt $NEW_VSN $CUR_VSN; then
|
||
|
echo "Invalid version '$NEW_VSN'. Must be greater than current version $CUR_VSN"
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
check_changelog() {
|
||
|
if ! egrep "\b$NEW_VSN\b" $PROJECT_ROOT/docs/CHANGELOG.md >/dev/null; then
|
||
|
echo "Invalid version '$NEW_VSN'. Missing entry in CHANGELOG.md"
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
set_version() {
|
||
|
sed -i '' "s/$CUR_VSN/$NEW_VSN/g" $PROJECT_ROOT/ixwebsocket/IXWebSocketVersion.h
|
||
|
echo "Set version to '$NEW_VSN'"
|
||
|
exit 0
|
||
|
}
|
||
|
|
||
|
check_ver
|
||
|
check_ver_increase
|
||
|
check_changelog
|
||
|
set_version
|