RetroDECK/automation_tools/version_extractor.sh

36 lines
1.3 KiB
Bash
Executable file

#!/bin/bash
# This script is intended to gather version information from various sources:
# RetroDECK repository
# Metainfo.xml file
# Manifest YAML file
# It consists of three functions, each responsible for retrieving a specific version-related data.
metainfo="net.retrodeck.retrodeck.metainfo.xml"
manifest="net.retrodeck.retrodeck.yml"
manifest_content=$(cat "$manifest")
fetch_repo_version(){
# Getting latest RetroDECK release info
LATEST_RELEASE=$(curl -s "https://api.github.com/repos/RetroDECK/RetroDECK/releases/latest")
# Extracting tag name from the latest release
repo_version=$(echo "$LATEST_RELEASE" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
# Printing results
echo "$repo_version"
}
fetch_metainfo_version(){
# Extract the version from the net.retrodeck.retrodeck.metainfo.xml file
metainfo_version=$(grep -oPm1 "(?<=<release version=\")[^\"]+" "$metainfo")
echo "$metainfo_version"
}
fetch_manifest_version(){
# Use awk to extract the value of the first iteration of VERSION variable
manifest_version=$(echo "$manifest_content" | awk '/VERSION=/ && !/#/ { sub(/.*VERSION=/, ""); sub(/#.*/, ""); print; exit }')
# Trim leading and trailing whitespace
manifest_version=$(echo "$manifest_version" | awk '{$1=$1;print}')
echo "$manifest_version"
}
echo "Version extractor functions loaded"