You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
49 lines
1.5 KiB
#!/bin/bash
|
|
|
|
## List upstream available versions in reverse chronological order
|
|
##
|
|
## These versions information will be the input for the version information
|
|
## usually used by the build process.
|
|
## A external query of upstream sources will be done.
|
|
##
|
|
|
|
## This script is launched by ``charm upstream-versions`` and will receive these env variables
|
|
##
|
|
##
|
|
## VERSION_LIMIT ## limit number of version to read
|
|
##
|
|
##
|
|
## The script CWD will be the root of the charm directory
|
|
##
|
|
|
|
DOCKER_IMAGE_NAME=collabora/code
|
|
|
|
semver:normalize() {
|
|
local upstream_version="$1"
|
|
local version="${upstream_version/./}"
|
|
read -r year_month major minor patch <<< ${version//./ }
|
|
if ! [ "${#patch}" == 1 ]; then
|
|
echo "Error: build number is not a single digit: '${patch}' (upstream: '${upstream_version}')" >&2
|
|
return 1
|
|
fi
|
|
if [ "${#major}" -gt 2 ]; then
|
|
echo "Error: major number is more than 2 digits: '${major}' (upstream: '${upstream_version}')" >&2
|
|
return 1
|
|
fi
|
|
major=$(printf "%02d" ${major})
|
|
echo "${year_month}${major}.${minor}.${patch}"
|
|
}
|
|
|
|
|
|
upstream:list() {
|
|
local limit=${1:-5}
|
|
docker-tags-fetch "$DOCKER_IMAGE_NAME" -l "${limit}" -f "^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" |
|
|
sort -rV |
|
|
cut -f 1 -d "-"
|
|
}
|
|
|
|
|
|
while read -r "upstream_version"; do
|
|
normalized_version=$(semver:normalize "${upstream_version}") || exit 1
|
|
printf "%s %s\n" "$(semver:normalize "${upstream_version}")" "$upstream_version"
|
|
done < <(upstream:list "${VERSION_LIMIT}")
|