From a6838a0c6955a5803ca1b15338b971292c3e824b Mon Sep 17 00:00:00 2001 From: "Alexandru N. Onea" Date: Wed, 10 Apr 2019 01:00:58 +0300 Subject: Rename version-bump to just version --- CMakeLists.txt | 2 +- Makefile | 2 +- meson.build | 4 +- scripts/version-bump.sh | 264 ------------------------------------------------ scripts/version.sh | 264 ++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 268 insertions(+), 268 deletions(-) delete mode 100755 scripts/version-bump.sh create mode 100755 scripts/version.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index c927706..0bb0af5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ add_custom_command(TARGET "tinyalsa" POST_BUILD COMMENT "Checking version against the changelog" WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - COMMAND ${PROJECT_SOURCE_DIR}/scripts/version-bump.sh check) + COMMAND ${PROJECT_SOURCE_DIR}/scripts/version.sh check) macro(ADD_EXAMPLE EXAMPLE) add_executable(${EXAMPLE} ${ARGN}) diff --git a/Makefile b/Makefile index ea9bfef..f268487 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ export LIBDIR ?= $(PREFIX)/lib export BINDIR ?= $(PREFIX)/bin export MANDIR ?= $(PREFIX)/share/man -export VERSIONSCRIPT = $(shell pwd)/scripts/version-bump.sh +export VERSIONSCRIPT = $(shell pwd)/scripts/version.sh export TINYALSA_VERSION_MAJOR = $(shell $(VERSIONSCRIPT) -s print major) export TINYALSA_VERSION = $(shell $(VERSIONSCRIPT) -s print ) diff --git a/meson.build b/meson.build index 04edda5..7762706 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project ('tinyalsa', 'c', - version : run_command(find_program('scripts/version-bump.sh'), 'print', '-s').stdout().strip(), + version : run_command(find_program('scripts/version.sh'), 'print', '-s').stdout().strip(), meson_version : '>= 0.48.0') tinyalsa_includes = include_directories('.', 'include') @@ -10,7 +10,7 @@ tinyalsa = library('tinyalsa', version: meson.project_version(), install: true) -log_version = run_command(find_program('scripts/version-bump.sh'), 'check') +log_version = run_command(find_program('scripts/version.sh'), 'check') if log_version.returncode() != 0 error(log_version.stderr()) endif diff --git a/scripts/version-bump.sh b/scripts/version-bump.sh deleted file mode 100755 index 8876c40..0000000 --- a/scripts/version-bump.sh +++ /dev/null @@ -1,264 +0,0 @@ -#!/usr/bin/env bash - -# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -# -# Project configuration variables -# -# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -VERSION_FILE="include/tinyalsa/version.h" -CHANGELOG_FILE="debian/changelog" - -# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -# -# Scripts internal variables -# -# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -LF="\n" -PARAMS="" -DRYRUN=0 - -# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -# -# Helper functions -# -# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -die() -{ - echo "Error: $@" 1>&2 - exit 1 -} - -print_usage() -{ - echo - echo "Usage: $0 [OPTIONS] ACTION" - echo - echo "Available options:" - echo " -s,--script Format output in \"script\" mode (no trailing newline)." - echo " -d,--dry-run Does not commit anything to any file, just prints." - echo - echo "Available actions:" - echo " print [minor|major|patch] Print the current version." - echo " release [minor|major|patch] Bump the specified version part" - echo " check Check the changelog latest released" - echo " version against the version file." - echo - echo "Please run this script from the project root folder." - echo -} - -check_files() -{ - [ -f ${VERSION_FILE} ] || die "No ${VERSION_FILE} found!"; - [ -f ${CHANGELOG_FILE} ] || die "No ${CHANGELOG_FILE} found!" -} - -# Gets a part of the version from the project version file (version.h). -# Takes one argument: the matching version identifier in the version file, e.g. -# TINYALSA_VERSION_MAJOR -get_version_part() -{ - local V=$(grep -m 1 "^#define\([ \t]*\)$1" ${VERSION_FILE} | sed 's/[^0-9]*//g') - - if [ -z ${V} ]; then - die "Could not get $1 from ${VERSION_FILE}" - fi - - echo ${V} -} - - -# Gets the complete version from the version file. -# Sets VERSION_MAJOR, VERSION_MINOR and VERSION_PATCH globals -get_version() -{ - VERSION_MAJOR=$(get_version_part "TINYALSA_VERSION_MAJOR") - VERSION_MINOR=$(get_version_part "TINYALSA_VERSION_MINOR") - VERSION_PATCH=$(get_version_part "TINYALSA_VERSION_PATCH") -} - -# Commits the new version part to the version file. -# Takes two arguments: the version part identifier in the version file and the -# new version number. If no arguments, do nothing. -commit_version_part() -{ - if [ -z $1 ] || [ -z $2 ]; then - return 0 - fi - - sed -i "s/\(^#define[ \t]*$1\)[ \t]*\([0-9]*\)/\1 $2/g" ${VERSION_FILE} \ - || die "Could not commit version for $1"; - - [ $(get_version_part $1) = "$2" ] || die "Version check after commit failed for $1" - - return 0; -} - -# Commits the new version to the version file. -# Takes three arguments, the new version numbers for major, minor and patch -commit_version() -{ - commit_version_part "TINYALSA_VERSION_PATCH" $1 - commit_version_part "TINYALSA_VERSION_MINOR" $2 - commit_version_part "TINYALSA_VERSION_MAJOR" $3 - - return 0 -} - -# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -# -# Actions implementations / functions -# -# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -print_version() -{ - if [ -z $1 ]; then - printf "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${LF}" - else - case "$1" in - major) - printf "${VERSION_MAJOR}${LF}" - ;; - minor) - printf "${VERSION_MINOR}${LF}" - ;; - patch) - printf "${VERSION_PATCH}${LF}" - ;; - *) - die "Unknown part \"$1\" (must be one of minor, major and patch)." - ;; - esac - fi - - return 0 -} - -bump_version() -{ - local PART="patch" - - if [ ! -z $1 ]; then - PART="$1" - fi - - case "$PART" in - major) - VERSION_MAJOR=$((VERSION_MAJOR+1)) - VERSION_MINOR=0 - VERSION_PATCH=0 - ;; - minor) - VERSION_MINOR=$((VERSION_MINOR+1)) - VERSION_PATCH=0 - ;; - patch) - VERSION_PATCH=$((VERSION_PATCH+1)) - ;; - *) - die "Unknown part \"$1\" (must be one of minor, major and patch)." - ;; - esac - - if [ ${DRYRUN} -ne 1 ]; then - commit_version ${VERSION_PATCH} ${VERSION_MINOR} ${VERSION_MAJOR} - fi - - print_version - return 0 -} - -check_version() -{ - local LOG_VERSION=$(grep -m 1 "^tinyalsa (" ${CHANGELOG_FILE}| sed "s/[^0-9.]*//g") - local REF_VERSION="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" - - if [ "${LOG_VERSION}" != "${REF_VERSION}" ]; then - die "Changelog version (${LOG_VERSION}) does not match package version (${REF_VERSION})." - fi - - printf "Changelog version (${LOG_VERSION}) OK!${LF}" - return 0 -} - -# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -# -# Command Line parsing -# -# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -parse_command() -{ - if [ "$#" -eq "0" ]; then - print_usage - exit 1 - fi - - case "$1" in - print) - get_version - print_version "$2" - exit $? - ;; - release) - get_version - bump_version "$2" - exit $? - ;; - check) - get_version - check_version - exit $? - ;; - *) - die "Unsupported action \"$1\"." - ;; - esac -} - -# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -# -# Main -# -# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - -set -e -trap "set +e" 0 - -# Checking parameters -if [ "$#" -eq "0" ]; then - print_usage - exit 0 -fi - -while [ "$#" -ne "0" ]; do - case "$1" in - -s|--script) - unset LF - shift - ;; - -d|--dry-run) - DRYRUN=1 - shift - ;; - --) - shift - break - ;; - -*|--*=) - die "Unsupported flag \"$1\"." - ;; - *) - PARAMS="$PARAMS ${1}" - shift - ;; - esac -done - -# set positional arguments in their proper place -set -- "${PARAMS}" - -check_files -parse_command ${PARAMS} - -# The script should never reach this place. -die "Internal error. Please report this." diff --git a/scripts/version.sh b/scripts/version.sh new file mode 100755 index 0000000..8876c40 --- /dev/null +++ b/scripts/version.sh @@ -0,0 +1,264 @@ +#!/usr/bin/env bash + +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +# +# Project configuration variables +# +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +VERSION_FILE="include/tinyalsa/version.h" +CHANGELOG_FILE="debian/changelog" + +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +# +# Scripts internal variables +# +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +LF="\n" +PARAMS="" +DRYRUN=0 + +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +# +# Helper functions +# +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +die() +{ + echo "Error: $@" 1>&2 + exit 1 +} + +print_usage() +{ + echo + echo "Usage: $0 [OPTIONS] ACTION" + echo + echo "Available options:" + echo " -s,--script Format output in \"script\" mode (no trailing newline)." + echo " -d,--dry-run Does not commit anything to any file, just prints." + echo + echo "Available actions:" + echo " print [minor|major|patch] Print the current version." + echo " release [minor|major|patch] Bump the specified version part" + echo " check Check the changelog latest released" + echo " version against the version file." + echo + echo "Please run this script from the project root folder." + echo +} + +check_files() +{ + [ -f ${VERSION_FILE} ] || die "No ${VERSION_FILE} found!"; + [ -f ${CHANGELOG_FILE} ] || die "No ${CHANGELOG_FILE} found!" +} + +# Gets a part of the version from the project version file (version.h). +# Takes one argument: the matching version identifier in the version file, e.g. +# TINYALSA_VERSION_MAJOR +get_version_part() +{ + local V=$(grep -m 1 "^#define\([ \t]*\)$1" ${VERSION_FILE} | sed 's/[^0-9]*//g') + + if [ -z ${V} ]; then + die "Could not get $1 from ${VERSION_FILE}" + fi + + echo ${V} +} + + +# Gets the complete version from the version file. +# Sets VERSION_MAJOR, VERSION_MINOR and VERSION_PATCH globals +get_version() +{ + VERSION_MAJOR=$(get_version_part "TINYALSA_VERSION_MAJOR") + VERSION_MINOR=$(get_version_part "TINYALSA_VERSION_MINOR") + VERSION_PATCH=$(get_version_part "TINYALSA_VERSION_PATCH") +} + +# Commits the new version part to the version file. +# Takes two arguments: the version part identifier in the version file and the +# new version number. If no arguments, do nothing. +commit_version_part() +{ + if [ -z $1 ] || [ -z $2 ]; then + return 0 + fi + + sed -i "s/\(^#define[ \t]*$1\)[ \t]*\([0-9]*\)/\1 $2/g" ${VERSION_FILE} \ + || die "Could not commit version for $1"; + + [ $(get_version_part $1) = "$2" ] || die "Version check after commit failed for $1" + + return 0; +} + +# Commits the new version to the version file. +# Takes three arguments, the new version numbers for major, minor and patch +commit_version() +{ + commit_version_part "TINYALSA_VERSION_PATCH" $1 + commit_version_part "TINYALSA_VERSION_MINOR" $2 + commit_version_part "TINYALSA_VERSION_MAJOR" $3 + + return 0 +} + +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +# +# Actions implementations / functions +# +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +print_version() +{ + if [ -z $1 ]; then + printf "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${LF}" + else + case "$1" in + major) + printf "${VERSION_MAJOR}${LF}" + ;; + minor) + printf "${VERSION_MINOR}${LF}" + ;; + patch) + printf "${VERSION_PATCH}${LF}" + ;; + *) + die "Unknown part \"$1\" (must be one of minor, major and patch)." + ;; + esac + fi + + return 0 +} + +bump_version() +{ + local PART="patch" + + if [ ! -z $1 ]; then + PART="$1" + fi + + case "$PART" in + major) + VERSION_MAJOR=$((VERSION_MAJOR+1)) + VERSION_MINOR=0 + VERSION_PATCH=0 + ;; + minor) + VERSION_MINOR=$((VERSION_MINOR+1)) + VERSION_PATCH=0 + ;; + patch) + VERSION_PATCH=$((VERSION_PATCH+1)) + ;; + *) + die "Unknown part \"$1\" (must be one of minor, major and patch)." + ;; + esac + + if [ ${DRYRUN} -ne 1 ]; then + commit_version ${VERSION_PATCH} ${VERSION_MINOR} ${VERSION_MAJOR} + fi + + print_version + return 0 +} + +check_version() +{ + local LOG_VERSION=$(grep -m 1 "^tinyalsa (" ${CHANGELOG_FILE}| sed "s/[^0-9.]*//g") + local REF_VERSION="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" + + if [ "${LOG_VERSION}" != "${REF_VERSION}" ]; then + die "Changelog version (${LOG_VERSION}) does not match package version (${REF_VERSION})." + fi + + printf "Changelog version (${LOG_VERSION}) OK!${LF}" + return 0 +} + +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +# +# Command Line parsing +# +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +parse_command() +{ + if [ "$#" -eq "0" ]; then + print_usage + exit 1 + fi + + case "$1" in + print) + get_version + print_version "$2" + exit $? + ;; + release) + get_version + bump_version "$2" + exit $? + ;; + check) + get_version + check_version + exit $? + ;; + *) + die "Unsupported action \"$1\"." + ;; + esac +} + +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +# +# Main +# +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + +set -e +trap "set +e" 0 + +# Checking parameters +if [ "$#" -eq "0" ]; then + print_usage + exit 0 +fi + +while [ "$#" -ne "0" ]; do + case "$1" in + -s|--script) + unset LF + shift + ;; + -d|--dry-run) + DRYRUN=1 + shift + ;; + --) + shift + break + ;; + -*|--*=) + die "Unsupported flag \"$1\"." + ;; + *) + PARAMS="$PARAMS ${1}" + shift + ;; + esac +done + +# set positional arguments in their proper place +set -- "${PARAMS}" + +check_files +parse_command ${PARAMS} + +# The script should never reach this place. +die "Internal error. Please report this." -- cgit v1.2.3