#!/usr/bin/env bash # Copyright (c) 2015 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. path=$( cd "$(dirname "${BASH_SOURCE}")" ; pwd -P ) cd "$path" if [ -f .version ]; then vstring=$(cat .version) else vstring=$(git describe --long --match "v*") if [ $? != 0 ]; then exit 1 fi fi TAG=$(echo ${vstring} | cut -d- -f1 | sed -e 's/^v//') ADD=$(echo ${vstring} | cut -s -d- -f2) POINT=$(echo ${TAG} | cut -d. -f3) # if this is a "implicit zeroth" release (e.g. 19.08), check if we need to add ".0" # to fix the artifact versioning sorting if [ -z "${POINT}" ]; then # verify that we are not: # - directly on the XX.YY tag (then ADD will equal "0" by its construction) # - not on any of the builds past "-rc[123]" but before releases - then ADD will be "rc[123]" if [ "${ADD}" != "0" -a "${ADD}" != "rc0" -a "${ADD}" != "rc1" -a "${ADD}" != "rc2" -a "${ADD}" != "rc3" -a "${ADD}" != "rc4" ]; then TAG="${TAG}.0" fi fi git rev-parse 2> /dev/null if [ $? == 0 ]; then CMT=$(git describe --dirty --long --match 'v*'| cut -s -d- -f3,4) else CMT=$(echo ${vstring} | cut -s -d- -f3,4) fi CMTR=$(echo $CMT | sed 's/-/_/') if [ -n "${BUILD_NUMBER}" ]; then BLD="~b${BUILD_NUMBER}" fi if [ "$1" = "rpm-version" ]; then echo ${TAG} exit fi if [ "$1" = "rpm-release" ]; then [ "${ADD}" = "0" ] && echo release && exit echo ${ADD}${CMTR:+~${CMTR}}${BLD} exit fi if [ "${ADD}" != "0" ]; then if [ "$1" = "rpm-string" ]; then echo ${TAG}-${ADD}${CMTR:+~${CMTR}}${BLD} else echo ${TAG}-${ADD}${CMT:+~${CMT}}${BLD} fi else echo ${TAG}-release fi