blob: b46eed1b82b49ff011196a67aea981ac3f02db15 [file] [log] [blame]
#!/bin/bash
###############################################################################
# @@@ START COPYRIGHT @@@
#
# (C) Copyright 2007-2014 Hewlett-Packard Development Company, L.P.
#
# 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.
#
# @@@ END COPYRIGHT @@@
#
# File: genverhdr.ksh
# Description: Script to automate creation of files with version strings and values
#
# Created: 04 Apr 2007
# Language: bash
#
#
###############################################################################
# bash colorize
bldwht='\e[1;37m' # White
txtrst='\e[0m' # Text Reset
#---------
# usage()
#---------
function print_usage_line {
printf " ${bldwht}$1${txtrst}\n"
printf "$2" | fmt -w 70 | xargs -i printf " %s\n" "{}"
}
function usage {
printf "${bldwht}"
echo "genverhdr.ksh - a script to create a version string "
echo "Usage: genverhdr.ksh [-r] [-l label_string] [-e version_string]"
printf "${txtrst}"
echo
print_usage_line "-branch" "Specifies branch id in the version string."
print_usage_line "-build" "Specifies build id in the version string."
print_usage_line "-date" "Specifies date in the version string."
print_usage_line "-flavor" "Specifies build number in the version string."
print_usage_line "-funbranch" "Specifies branch id in the version string."
print_usage_line "-h" "print this usage message"
print_usage_line "-major" "Specifies major number in the version string."
print_usage_line "-minor" "Specifies minor number in the version string."
print_usage_line "-update" "Specifies update number in the version string."
}
#---------------
# writeVerHdr()
#---------------
function writeVerHdr {
umask 002
cat > $TMPFILE <<EOF
/******************************************************************************
*
* File: SCMBuildStr.h
* Description: Autogenerated header file with current build version string
* -- generated by genverhdr.ksh in build-scripts
* Language: C
*
*******************************************************************************/
#ifndef SCMBUILDSTR_H
#define SCMBUILDSTR_H 1
/* unused for now */
static const char * SCMBuildStr = "";
/* product version */
#define VERS_PV_MAJ $major
#define VERS_PV_MIN $minor
#define VERS_PV_UPD $update
/* build version */
#define VERS_BR $branch
#define VERS_BR2 $(echo $funbranch | sed -e "s:-:_dh_:g" -e "s:\.:_dt_:g" -e "s:\/:_sl_:g")
#define VERS_BV $flavor
#define VERS_SCMBV $build
#define VERS_SCMBV2 $(echo $build | sed -e "s:-:_dh_:g" -e "s:\.:_dt_:g" -e "s:\/:_sl_:g")
/* build date */
#define VERS_DT $buildDate
#endif
EOF
cat > $TMPFILEJ <<EOF
Implementation-Version-2: Release $major.$minor.$update
Implementation-Version-3: Build $flavor
Implementation-Version-4: [$build]
Implementation-Version-5: branch $branch
Implementation-Version-6: date $buildDate
EOF
cat > $TMPFILEJ2 <<EOF
#!/bin/sh
echo "Implementation-Version-1: Version \$*"
cat \$MY_SQROOT/export/include/SCMBuildMan.mf
EOF
chmod +x $TMPFILEJ2
diff --brief --new-file $TMPFILE $hdrFile 2>&1 >/dev/null
dh=$?
diff --brief --new-file $TMPFILEJ $hdrFileJ 2>&1 >/dev/null
dj=$?
diff --brief --new-file $TMPFILEJ2 $hdrFileJ2 2>&1 >/dev/null
dj2=$?
if [[ $dh -ne 0 || $dj -ne 0 || $dj2 -ne 0 ]]; then
echo "Creating file $hdrFile"
cp -f $TMPFILE $hdrFile
echo "Creating file $hdrFileJ"
cp -f $TMPFILEJ $hdrFileJ
echo "Creating file $hdrFileJ2"
cp -f $TMPFILEJ2 $hdrFileJ2
fi
rm -f $TMPFILE $TMPFILEJ $TMPFILEJ2
}
#------------
# Main body
#------------
# Define the name of the header file
typeset TMPFILE=$(mktemp /tmp/SCMBuildStr.XXX)
typeset TMPFILEJ=$(mktemp /tmp/SCMBuildStr.XXX)
typeset TMPFILEJ2=$(mktemp /tmp/SCMBuildStr.XXX)
typeset hdrFile="../export/include/SCMBuildStr.h"
typeset hdrFileJ="../export/include/SCMBuildMan.mf"
typeset hdrFileJ2="../export/include/SCMBuildJava.sh"
# Input file
typeset VERFILE="../sqenvcom.sh"
# Parse the command options:
typeset branch=
typeset build=
typeset flavor=
typeset funbranch=
typeset buildDate=
typeset major=
typeset minor=
typeset update=
while [ $# -gt 0 ]; do
case $1 in
-branch|-br)
branch="${2}"
shift
;;
-build|-b)
build="${2}"
shift
;;
-date|-d)
buildDate="${2}"
shift
;;
-flavor|-f)
flavor="${2}"
shift
;;
-funbranch|-fb)
funbranch="${2}"
shift
;;
-major|-ma)
major="${2}"
shift
;;
-minor|-mi)
minor="${2}"
shift
;;
-update|-u)
update="${2}"
shift
;;
-h|*)
usage
exit 1
;;
esac
shift
done
# Set some defaults
[ -z "$branch" ] && branch=BRANCH
[ -z "$build" ] && build=DEV
[ -z "$buildDate" ] && buildDate=$(date +%d%b%y)
[ -z "$flavor" ] && flavor=debug
[ -z "$funbranch" ] && funbranch=FUNBRANCH
VER_VARIABLES="TRAFODION_VER_MAJOR TRAFODION_VER_MINOR TRAFODION_VER_UPDATE"
if [[ -z "${major}${minor}${update}" ]]; then
for AVAR in $VER_VARIABLES ; do
if [[ -z "$( eval "echo \$$(eval "echo $AVAR")" )" ]]; then
echo "ERROR: Environment variable is null : $AVAR"
exit 1
fi
done
fi
[ -z "$major" ] && major="$( grep TRAFODION_VER_MAJOR= $VERFILE | cut -f2 -d=)"
[ -z "$minor" ] && minor="$( grep TRAFODION_VER_MINOR= $VERFILE | cut -f2 -d=)"
[ -z "$update" ] && update="$(grep TRAFODION_VER_UPDATE= $VERFILE | cut -f2 -d=)"
writeVerHdr