takserver/scripts/tak-version.sh
Merith-TK d7a6b77e57
All checks were successful
Build Docker Image on Commit / build-and-publish (push) Successful in 2m53s
it builds, and hopefully runs?
2025-07-05 03:36:34 +01:00

68 lines
1.9 KiB
Bash

#!/bin/bash
# TAK Server Version Detection Script
set -e
# Find the latest takserver-docker-X.Y-RELEASE-Z.zip file
find_latest_tak_release() {
local takserver_dir="$1"
if [ ! -d "$takserver_dir" ]; then
echo "ERROR: Directory $takserver_dir does not exist"
return 1
fi
local latest_zip=$(find "$takserver_dir" -name "takserver-docker-*-RELEASE-*.zip" -type f | \
sed -n 's/.*takserver-docker-\([0-9]\+\.[0-9]\+\)-RELEASE-\([0-9]\+\)\.zip/\1.\2 &/p' | \
sort -V | tail -1 | cut -d' ' -f2-)
if [ -z "$latest_zip" ]; then
echo "ERROR: No takserver-docker-X.Y-RELEASE-Z.zip file found in $takserver_dir"
return 1
fi
echo "$latest_zip"
}
# Extract version information
get_tak_version() {
local zip_file="$1"
local version=$(basename "$zip_file" | sed -n 's/takserver-docker-\([0-9]\+\.[0-9]\+\)-RELEASE-\([0-9]\+\)\.zip/\1-\2/p')
echo "$version"
}
# List all available TAK releases
list_tak_releases() {
local takserver_dir="$1"
echo "Available TAK server releases:"
find "$takserver_dir" -name "takserver-docker-*-RELEASE-*.zip" -type f | while read -r file; do
local version=$(get_tak_version "$file")
echo " - $(basename "$file") (version: $version)"
done
}
# Main execution if script is run directly
if [ "${BASH_SOURCE[0]}" == "${0}" ]; then
TAKSERVER_DIR="${1:-/takserver-zip}"
case "${2:-latest}" in
"latest")
find_latest_tak_release "$TAKSERVER_DIR"
;;
"list")
list_tak_releases "$TAKSERVER_DIR"
;;
"version")
if [ -n "$3" ]; then
get_tak_version "$3"
else
echo "Usage: $0 <dir> version <zip_file>"
exit 1
fi
;;
*)
echo "Usage: $0 <directory> [latest|list|version <zip_file>]"
exit 1
;;
esac
fi