reg/vendor/github.com/docker/docker-ce/components/packaging/deb/gen-deb-ver
Jess Frazelle 843aebf2c1
update deps
Signed-off-by: Jess Frazelle <acidburn@microsoft.com>
2018-07-14 11:48:41 -04:00

72 lines
2.3 KiB
Bash
Executable file

#!/usr/bin/env bash
ENGINE_DIR="$1"
VERSION="$2"
origVersion=$VERSION
SUFFIX=${SUFFIX:=ce}
[[ $# < 2 ]] && echo 'not enough args' && exit 1
DATE_COMMAND="date"
if [[ $(uname) -eq "Darwin" ]]; then
DATE_COMMAND="docker run --rm alpine date"
fi
gen_deb_version() {
# Adds an increment to the deb version to get proper order
# 18.01.0-${SUFFIX}-tp1 -> 18.01.0-${SUFFIX}-0.1-tp1
# 18.01.0-${SUFFIX}-beta1 -> 18.01.0-${SUFFIX}-1.1-beta1
# 18.01.0-${SUFFIX}-rc1 -> 18.01.0-${SUFFIX}-2.1-rc1
# 18.01.0-${SUFFIX} -> 18.01.0-${SUFFIX}-3
fullVersion="$1"
pattern="$2"
increment="$3"
testVersion="${fullVersion#*-$SUFFIX-*$pattern}"
baseVersion="${fullVersion%-"$pattern"*}"
echo "$baseVersion-$increment.$testVersion.$pattern$testVersion"
}
case "$VERSION" in
*-dev)
debVersion="$VERSION"
;;
*-tp[0-9]*)
debVersion="$(gen_deb_version "$VERSION" tp 0)"
;;
*-beta[0-9]*)
debVersion="$(gen_deb_version "$VERSION" beta 1)"
;;
*-rc[0-9]*)
debVersion="$(gen_deb_version "$VERSION" rc 2)"
;;
*)
debVersion="$VERSION-3"
;;
esac
export TZ=UTC
tilde='~' # ouch Bash 4.2 vs 4.3, you keel me
# git running in different directories, backwards compatible too
GIT_COMMAND="git -C $ENGINE_DIR"
debVersion="${debVersion//-/$tilde}" # using \~ or '~' here works in 4.3, but not 4.2; just ~ causes $HOME to be inserted, hence the $tilde
# if we have a "-dev" suffix or have change in Git, let's make this package version more complex so it works better
if [[ "$VERSION" == *-dev ]]; then
gitUnix="$($GIT_COMMAND log -1 --pretty='%at')"
gitDate="$($DATE_COMMAND --date "@$gitUnix" +'%Y%m%d.%H%M%S')"
gitCommit="$($GIT_COMMAND log -1 --pretty='%h')"
debVersion="0.${gitDate}-${gitCommit}"
origVersion=$debVersion
# $ dpkg --compare-versions 1.5.0 gt 1.5.0~rc1 && echo true || echo false
# true
# $ dpkg --compare-versions 1.5.0~rc1 gt 1.5.0~git20150128.112847.17e840a && echo true || echo false
# true
# $ dpkg --compare-versions 1.5.0~git20150128.112847.17e840a gt 1.5.0~dev~git20150128.112847.17e840a && echo true || echo false
# true
# ie, 1.5.0 > 1.5.0~rc1 > 1.5.0~git20150128.112847.17e840a > 1.5.0~dev~git20150128.112847.17e840a
fi
echo "$debVersion" "$origVersion"