generated from oci/template
All checks were successful
Build Docker Image on Commit / build-and-publish (push) Successful in 2m53s
68 lines
1.9 KiB
Bash
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
|