2025-04-10 15:35:39 +02:00

40 lines
1.2 KiB
Bash

#!/bin/bash
INPUT_FILE=".github/workflows/scripts/repos.txt"
OUTPUT_FILE="frontend/public/json/versions.json"
TMP_FILE="releases_tmp.json"
if [ -f "$OUTPUT_FILE" ]; then
cp "$OUTPUT_FILE" "$TMP_FILE"
else
echo "[]" > "$TMP_FILE"
fi
while IFS= read -r repo; do
echo "Checking $repo..."
response=$(curl -s -H "Authorization: token $GITHUB_TOKEN" "https://api.github.com/repos/${repo}/releases/latest")
tag=$(echo "$response" | jq -r .tag_name)
date=$(echo "$response" | jq -r .published_at)
if [[ "$tag" == "null" || "$date" == "null" ]]; then
echo "No release found for $repo"
continue
fi
existing_version=$(jq -r --arg name "$repo" '.[] | select(.name == $name) | .version' "$TMP_FILE")
if [[ "$existing_version" != "$tag" ]]; then
echo "New release for $repo: $tag"
jq --arg name "$repo" 'del(.[] | select(.name == $name))' "$TMP_FILE" > "$TMP_FILE.tmp" && mv "$TMP_FILE.tmp" "$TMP_FILE"
jq --arg name "$repo" --arg version "$tag" --arg date "$date" \
'. += [{"name": $name, "version": $version, "date": $date}]' "$TMP_FILE" > "$TMP_FILE.tmp" && mv "$TMP_FILE.tmp" "$TMP_FILE"
else
echo "No change for $repo"
fi
done < "$INPUT_FILE"
#mv "$TMP_FILE" "$OUTPUT_FILE"