45 lines
867 B
Bash
Executable file
45 lines
867 B
Bash
Executable file
#!/usr/bin/env bash
|
|
# Version script
|
|
# Usage:
|
|
# ./version.sh
|
|
# with optional fields:
|
|
# PREFIX= INDEX=1 ARCH= SUFFIX=
|
|
# Example:
|
|
# PREFIX=cligen INDEX=1 ARCH=amd64 SUFFIX=deb ./version.sh
|
|
set -eu
|
|
: ${PREFIX:=}
|
|
: ${INDEX=1}
|
|
: ${ARCH=}
|
|
: ${SUFFIX=}
|
|
# Get version string from default git describe: <tag>-<nr>-g<hash>
|
|
if [ -f .version ]; then
|
|
v1=$(cat .version)
|
|
else
|
|
v1=$(git describe)
|
|
fi
|
|
if [ -z $v1 ]; then
|
|
echo "No base version"
|
|
exit 1
|
|
fi
|
|
TAG=$(echo $v1 | awk -F- '{print $1}')
|
|
NR=$(echo $v1 | awk -F- '{print $2}')
|
|
HASH=$(echo $v1 | awk -F- '{print $3}')
|
|
V=""
|
|
if [ -n "$PREFIX" ]; then
|
|
V="${V}${PREFIX}_"
|
|
fi
|
|
V="${V}${TAG}"
|
|
V="${V}-${INDEX}"
|
|
if [ -n "${NR}" ]; then
|
|
V="${V}+${NR}"
|
|
fi
|
|
if [ -n "${HASH}" ]; then
|
|
V="${V}+${HASH}"
|
|
fi
|
|
if [ -n "$ARCH" ]; then
|
|
V="${V}_${ARCH}"
|
|
fi
|
|
if [ -n "$SUFFIX" ]; then
|
|
V="${V}.${SUFFIX}"
|
|
fi
|
|
echo "${V}"
|