#!/usr/bin/env bash latest_download () ( FILTER='import "github" as gh; gh::latest_download(env.OS; env.ARCH)' OS=${2} ARCH="${3}" jq --raw-output "${FILTER}" <"$(release_json "${1}")" ) latest_type () ( FILTER='import "github" as gh; gh::latest_type(env.OS; env.ARCH)' OS=${2} ARCH="${3}" jq --raw-output "${FILTER}" <"$(release_json "${1}")" ) latest_version () ( FILTER='import "github" as gh; gh::latest_version' jq --raw-output "${FILTER}" <"$(release_json "${1}")" ) age_in_seconds () ( echo $(( $(date +"%s") - $(stat -c "%Y" "${1}") )) ) release_json () ( DAY=$((60 * 60 * 24)) PROJECT=$1 JSON=${XDG_CACHE_HOME}/apps/meta/${PROJECT}/releases.json mkdir -p "$(dirname "${JSON}")" if [[ ! -f "${JSON}" || "$(age_in_seconds "${JSON}")" -gt "${DAY}" ]]; then curl --silent --output "${JSON}" "https://api.github.com/repos/${PROJECT}/releases" fi echo "${JSON}" )