github.com/docker/docker-ce@v17.12.1-ce-rc2+incompatible/components/packaging/rpm/gen-rpm-ver (about) 1 #!/usr/bin/env bash 2 3 ENGINE_DIR=$1 4 VERSION=$2 5 6 [[ $# < 2 ]] && echo 'not enough args' && exit 1 7 8 DATE_COMMAND="date" 9 if [[ $(uname) -eq "Darwin" ]]; then 10 DATE_COMMAND="docker run --rm alpine date" 11 fi 12 13 GIT_COMMAND="git -C $ENGINE_DIR" 14 rpmName=docker-ce 15 rpmVersion="$VERSION" 16 rpmRelease=1 17 18 # rpmRelease versioning is as follows 19 # Docker 1.7.0: version=1.7.0, release=1 20 # Docker 1.7.0-rc1: version=1.7.0, release=0.1.rc1 21 # Docker 1.7.0-cs1: version=1.7.0.cs1, release=1 22 # Docker 1.7.0-cs1-rc1: version=1.7.0.cs1, release=0.1.rc1 23 # Docker 1.7.0-dev nightly: version=1.7.0, release=0.0.YYYYMMDD.HHMMSS.gitHASH 24 25 # if we have a "-rc*" suffix, set appropriate release 26 if [[ "$rpmVersion" =~ .*-rc[0-9]+$ ]] ; then 27 rcVersion=${rpmVersion#*-rc} 28 rpmVersion=${rpmVersion%-rc*} 29 rpmRelease="0.${rcVersion}.rc${rcVersion}" 30 fi 31 32 DOCKER_GITCOMMIT=$($GIT_COMMAND rev-parse --short HEAD) 33 if [ -n "$($GIT_COMMAND status --porcelain --untracked-files=no)" ]; then 34 DOCKER_GITCOMMIT="$DOCKER_GITCOMMIT-unsupported" 35 fi 36 37 # if we have a "-dev" suffix or have change in Git, let's make this package version more complex so it works better 38 if [[ "$rpmVersion" == *-dev ]] || [ -n "$($GIT_COMMAND status --porcelain)" ]; then 39 gitUnix="$($GIT_COMMAND log -1 --pretty='%at')" 40 gitDate="$($DATE_COMMAND --date "@$gitUnix" +'%Y%m%d.%H%M%S')" 41 gitCommit="$($GIT_COMMAND log -1 --pretty='%h')" 42 gitVersion="${gitDate}.git${gitCommit}" 43 # gitVersion is now something like '20150128.112847.17e840a' 44 rpmVersion="${rpmVersion%-dev}" 45 rpmRelease="0.0.$gitVersion" 46 fi 47 48 # Replace any other dashes with periods 49 rpmVersion="${rpmVersion/-/.}" 50 echo $rpmVersion $rpmRelease $DOCKER_GITCOMMIT