|
|
@@ -0,0 +1,137 @@ |
|
|
|
#!/bin/sh -e |
|
|
|
# version.sh: openocd version process automation |
|
|
|
# Copyright (C) 2009 by Zachary T Welch <zw@superlucidity.net> |
|
|
|
# Release under the GNU GPL v2 (or later versions). |
|
|
|
|
|
|
|
source "tools/release/helpers.sh" |
|
|
|
|
|
|
|
do_version_usage() { |
|
|
|
cat << USAGE |
|
|
|
usage: $0 <command> |
|
|
|
Version Commands: |
|
|
|
tag {add|remove} <label> Add or remove the specified tag. |
|
|
|
bump {major|minor|micro|rc} Bump the specified version number, and |
|
|
|
reset less-significant numbers to zero. |
|
|
|
bump tag <label> Add or bump a versioned tag (e.g. -rcN). |
|
|
|
bump final <label> Remove a versioned tag (e.g. -rcN). |
|
|
|
USAGE |
|
|
|
} |
|
|
|
|
|
|
|
do_version_sed() { |
|
|
|
local OLD_VERSION="${PACKAGE_VERSION}" |
|
|
|
local NEW_VERSION="$1" |
|
|
|
local MSG="$2" |
|
|
|
|
|
|
|
sed -i -e "/AC_INIT/ s|${OLD_VERSION}|${NEW_VERSION}|" configure.in |
|
|
|
package_info_load |
|
|
|
echo "${MSG}: ${OLD_VERSION} -> ${NEW_VERSION}" |
|
|
|
} |
|
|
|
do_version_bump_sed() { |
|
|
|
local NEW_VERSION="$1" |
|
|
|
[ -z "${PACKAGE_VERSION_TAGS}" ] || \ |
|
|
|
NEW_VERSION="${NEW_VERSION}${PACKAGE_VERSION_TAGS}" |
|
|
|
|
|
|
|
do_version_sed "${NEW_VERSION}" \ |
|
|
|
"Bump ${CMD} package version number" |
|
|
|
} |
|
|
|
do_version_bump_major() { |
|
|
|
do_version_bump_sed "$((PACKAGE_MAJOR + 1)).0.0" |
|
|
|
} |
|
|
|
do_version_bump_minor() { |
|
|
|
do_version_bump_sed "${PACKAGE_MAJOR}.$((PACKAGE_MINOR + 1)).0" |
|
|
|
} |
|
|
|
do_version_bump_micro() { |
|
|
|
do_version_bump_sed "${PACKAGE_MAJOR_AND_MINOR}.$((PACKAGE_MICRO + 1))" |
|
|
|
} |
|
|
|
do_version_bump_tag() { |
|
|
|
local TAG="$1" |
|
|
|
[ "${TAG}" ] || die "TAG argument is missing" |
|
|
|
local TAGS="${PACKAGE_VERSION_TAGS}" |
|
|
|
if has_version_tag "${TAG}"; then |
|
|
|
local RC=$(do_version_tag_value "${TAG}") |
|
|
|
RC=$((${RC} + 1)) |
|
|
|
TAGS=$(echo ${TAGS} | perl -npe "s/-${TAG}[\\d]*/-${TAG}${RC}/") |
|
|
|
else |
|
|
|
TAGS="-${TAG}0${PACKAGE_VERSION_TAGS}" |
|
|
|
fi |
|
|
|
PACKAGE_VERSION_TAGS="${TAGS}" |
|
|
|
do_version_bump_sed "${PACKAGE_VERSION_BASE}" |
|
|
|
} |
|
|
|
do_version_bump_final() { |
|
|
|
local TAG="$1" |
|
|
|
[ "${TAG}" ] || die "TAG argument is missing" |
|
|
|
has_version_tag "${TAG}" || die "-${TAG} tag is missing" |
|
|
|
do_version_tag_remove "${TAG}$(do_version_tag_value "${TAG}")" |
|
|
|
} |
|
|
|
do_version_bump() { |
|
|
|
CMD="$1" |
|
|
|
shift |
|
|
|
case "${CMD}" in |
|
|
|
major|minor|micro|final|tag) |
|
|
|
"do_version_bump_${CMD}" "$@" |
|
|
|
;; |
|
|
|
rc) |
|
|
|
do_version_bump_tag "rc" |
|
|
|
;; |
|
|
|
*) |
|
|
|
do_version_usage |
|
|
|
;; |
|
|
|
esac |
|
|
|
} |
|
|
|
|
|
|
|
has_version_tag() { |
|
|
|
test "${PACKAGE_VERSION/-${1}/}" != "${PACKAGE_VERSION}" |
|
|
|
} |
|
|
|
do_version_tag_value() { |
|
|
|
local TAG="$1" |
|
|
|
echo ${PACKAGE_VERSION_TAGS} | perl -ne "/-${TAG}"'(\d+)/ && print $1' |
|
|
|
} |
|
|
|
do_version_tag_add() { |
|
|
|
local TAG="$1" |
|
|
|
has_version_tag "${TAG}" && \ |
|
|
|
die "error: tag '-${TAG}' exists in '${PACKAGE_VERSION}'" |
|
|
|
do_version_sed "${PACKAGE_VERSION}-${TAG}" \ |
|
|
|
"Add '-${TAG}' version tag" |
|
|
|
} |
|
|
|
do_version_tag_remove() { |
|
|
|
local TAG="$1" |
|
|
|
has_version_tag "${TAG}" || \ |
|
|
|
die "error: tag '-${TAG}' missing from '${PACKAGE_VERSION}'" |
|
|
|
do_version_sed "${PACKAGE_VERSION/-${TAG}/}" \ |
|
|
|
"Remove '-${TAG}' version tag" |
|
|
|
} |
|
|
|
do_version_tag() { |
|
|
|
CMD="$1" |
|
|
|
shift |
|
|
|
case "${CMD}" in |
|
|
|
add|remove) |
|
|
|
local i= |
|
|
|
for i in "$@"; do |
|
|
|
"do_version_tag_${CMD}" "${i}" |
|
|
|
done |
|
|
|
;; |
|
|
|
*) |
|
|
|
do_version_usage |
|
|
|
;; |
|
|
|
esac |
|
|
|
} |
|
|
|
|
|
|
|
do_version() { |
|
|
|
CMD="$1" |
|
|
|
shift |
|
|
|
case "${CMD}" in |
|
|
|
tag|bump) |
|
|
|
"do_version_${CMD}" "$@" |
|
|
|
;; |
|
|
|
commit) |
|
|
|
do_version_commit "$@" |
|
|
|
;; |
|
|
|
*) |
|
|
|
do_version_usage |
|
|
|
;; |
|
|
|
esac |
|
|
|
} |
|
|
|
|
|
|
|
package_info_load |
|
|
|
do_version "$@" |
|
|
|
|