#!/bin/bash set -eo pipefail repo="$1" if [ -z "$repo" ]; then echo >&2 "usage: $0 repo" echo >&2 " ie: $0 hylang" exit 1 fi dir="$(dirname "$(readlink -f "$BASH_SOURCE")")" repoDir="$dir/../$repo" url='https://raw.githubusercontent.com/docker-library/official-images/master/library/'"$repo" IFS=$'\n' tags=( $(curl -fsSL "$url" | grep -vE '^$|^#' | cut -d':' -f1 | sort -u) ) unset IFS text= for tag in "${tags[@]}"; do for f in "$repoDir/variant-$tag.md" "$dir/variant-$tag.md"; do if [ -f "$f" ]; then text+=$'\n' # give a little space # because parameter expansion eats the trailing newline text+="$(<"$f")"$'\n' break fi done done if [ "$text" ]; then latest=($(curl -fsSL "$url" | grep "latest.*github.com" | sed -e 's!git://github.com/!!' -e 's/@/ /' -)) if [ -z "latest" ]; then exit 0 # If not github or no latest tag, we are done here fi dockerfile='https://raw.githubusercontent.com/'"${latest[1]}"'/'"${latest[2]}"'/'"${latest[3]}"'/Dockerfile' baseImage=$(curl -fsSL "$dockerfile" | awk -F '[: \t]+' '$1 == "FROM" { print $2 }') # give a little space echo echo if [ "$baseImage" = 'buildpack-deps' ]; then f='variant-buildpacks.md' else f='variant.md' fi [ -f "$repoDir/$f" ] && cat "$repoDir/$f" || cat "$dir/$f" echo "$text" fi