Browse Source

new: [collabora,nextcloud] add ``upstream-versions`` hook

master
Valentin Lab 1 week ago
parent
commit
7627dbe690
  1. 49
      collabora/hooks/upstream-versions
  2. 37
      nextcloud/hooks/upstream-versions

49
collabora/hooks/upstream-versions

@ -0,0 +1,49 @@
#!/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}")

37
nextcloud/hooks/upstream-versions

@ -0,0 +1,37 @@
#!/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=nextcloud
semver:normalize() {
local upstream_version="$1"
echo "$upstream_version"
}
upstream:list() {
local limit=${1:-5}
docker-tags-fetch "$DOCKER_IMAGE_NAME" -l "${limit}" -f "^[0-9]+\.[0-9]+\.[0-9]+-apache" |
sort -rV |
cut -f 1 -d "-"
}
while read -r "upstream_version"; do
printf "%s %s\n" "$(semver:normalize "${upstream_version}")" "$upstream_version"
done < <(upstream:list "${VERSION_LIMIT}")
Loading…
Cancel
Save