This repository has been archived on 2024-10-30. You can view files and clone it, but cannot push or open issues or pull requests.
concourse-oci-resource/src/out

37 lines
1 KiB
Bash
Executable file

#!/usr/bin/env sh
set -eu
[ -e /opt/resource/common ] && cd /opt/resource
. ./common
image_repository="$(jq -r .params.image < "$INPUT_FILE")"
if [ -z "$image_repository" ]; then
fail "must specify param 'image'"
fi
image_refs_file="$(mktemp -t)"
oci_dir="$(mktemp -d)"
cd "$oci_dir"
tar xf "$1/$image_repository"
cd - 1>&2 2>/dev/null
crane push "$oci_dir" "$REPOSITORY:$TAG" --image-refs="$image_refs_file"
additional_tags="$(jq -r '.params.additional_tags // ""' < "$INPUT_FILE")"
if [ -n "$additional_tags" ] && [ "$additional_tags" != 'null' ]; then
if ! [ -r "$1/$additional_tags" ]; then
fail "cannot open file $1/$additional_tags"
fi
tr '[:space:]' '\n' < "$1/$additional_tags" | grep -v '^$' | while read -r tag; do
crane tag "$REPOSITORY:@$(sed 's/^[^@]*@//' < "$image_refs_file")" "$tag"
done
fi
filter='{
"version": {"digest": $version}
} | tostring'
jq -r --null-input --arg version "$(sed 's/^[^@]*@//' < "$image_refs_file")" "$filter"
rm -r "$oci_dir"
rm "$image_refs_file"
rm "$INPUT_FILE"