#!/usr/bin/env bash

set -euo pipefail

readonly github_coordinates="mpalmer/action-validator"
readonly releases_path="https://api.github.com/repos/${github_coordinates}/releases"

cmd="curl -s"
if [ -n "${GITHUB_API_TOKEN:-}" ]; then
	cmd="$cmd -H 'Authorization: token $GITHUB_API_TOKEN'"
fi
cmd="$cmd $releases_path"

function sort_versions() {
	sed 'h; s/[+-]/./g; s/.p\([[:digit:]]\)/.z\1/; s/$/.z/; G; s/\n/ /' |
		LC_ALL=C sort -t. -k 1,1 -k 2,2n -k 3,3n -k 4,4n -k 5,5n | awk '{print substr($2,1);}'
}

function list_versions() {
	eval "$cmd" | tee | grep -oE "tag_name\": *\".{1,15}\"," | sed 's/tag_name\": *\"//;s/\",//' | grep '^v' | sed 's/^v//'
}

list_versions | sort_versions | xargs echo
