File docker_label_helper of Package obs-service-docker_label_helper

#!/bin/bash
set -eu

file="Dockerfile"

if [ "${BUILD_DIST+x}" != "x" ]; then
	echo "Not running in an OBS build container"
	exit 1
fi

BUILD_DATA="${BUILD_DIST/.dist/.data}"
if [ -e "${BUILD_DATA}" ]; then
	. "${BUILD_DATA}"

	# The build script renames the recipe (to strip _service:foo:), but doesn't update .data
	file="${RECIPEFILE##*:}"

	if [[ ! "${file}" =~ ^Dockerfile.* ]]; then
		echo "Recipe ${file} is not a Dockerfile - exiting"
		exit 0
	fi
fi

# Note: Avoid assigning to $1 etc. as that converts whitespace (field separators) to single spaces.
gawk -i inplace '
    match($0, /^# labelprefix=(.*)$/, m) { labelprefix=m[1]; next }
    labelprefix != "" && match($0, /^(PREFIXED)?LABEL[[:space:]]+[^=]*\.([^.=]*)=(.*)$/, m) { printf "LABEL %s.%s=%s\n", labelprefix, m[2], m[3]; gsub(/^PREFIXEDLABEL/, "LABEL") }
    match($0, /^# endlabelprefix/) { labelprefix=""; next }
    1' "${file}"
openSUSE Build Service is sponsored by