75 lines
2.2 KiB
Bash
Executable File
75 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# check-upstream-releases.sh — Check for new Redox OS snapshots (read-only).
|
|
#
|
|
# Usage:
|
|
# ./local/scripts/check-upstream-releases.sh
|
|
#
|
|
# Queries Redox GitLab tags via git ls-remote.
|
|
# Prints snapshots newer than the current baseline.
|
|
# ZERO side effects — no clones, no disk writes, no state changes.
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
|
|
REDOX_URL="${REDOX_URL:-https://gitlab.redox-os.org/redox-os/redox.git}"
|
|
MANIFEST="${MANIFEST:-$(ls "$PROJECT_ROOT"/sources/redbear-*/manifest.txt 2>/dev/null | head -1)}"
|
|
if [ -z "$MANIFEST" ]; then
|
|
echo "ERROR: No manifest found under sources/redbear-*/manifest.txt"
|
|
exit 1
|
|
fi
|
|
|
|
GREEN='\033[1;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[1;34m'
|
|
NC='\033[0m'
|
|
|
|
echo -e "${BLUE}Red Bear OS — Upstream Release Check${NC}"
|
|
echo ""
|
|
|
|
# Get our baseline
|
|
if [ -f "$MANIFEST" ]; then
|
|
BASELINE=$(head -3 "$MANIFEST" | grep 'Build system' | awk '{print $NF}' 2>/dev/null || echo "unknown")
|
|
echo "Baseline: Red Bear OS 0.1.0 (build system: $BASELINE)"
|
|
else
|
|
echo "Baseline: unknown (manifest not found at $MANIFEST)"
|
|
fi
|
|
|
|
# Get baseline date from manifest or git
|
|
if [ -f "$MANIFEST" ]; then
|
|
BASELINE_DATE=$(head -6 "$MANIFEST" | grep 'Generated' | sed 's/.*Generated: //' | head -1 2>/dev/null || echo "2026-05-01")
|
|
else
|
|
BASELINE_DATE="2026-05-01"
|
|
fi
|
|
echo "Baseline date: $BASELINE_DATE"
|
|
echo ""
|
|
|
|
# Query Redox tags
|
|
echo "Checking: $REDOX_URL"
|
|
echo ""
|
|
|
|
TAGS=$(git ls-remote --tags "$REDOX_URL" 2>/dev/null | grep -oP 'refs/tags/\K[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -20 || echo "")
|
|
|
|
if [ -z "$TAGS" ]; then
|
|
echo -e "${YELLOW}Could not query Redox tags. Is the network available?${NC}"
|
|
echo "URL: $REDOX_URL"
|
|
exit 0
|
|
fi
|
|
|
|
echo "Redox releases available:"
|
|
echo "$TAGS" | while read -r tag; do
|
|
marker=""
|
|
if [ "$tag" = "0.9.0" ]; then
|
|
marker=" (current upstream stable)"
|
|
fi
|
|
echo " $tag$marker"
|
|
done
|
|
|
|
echo ""
|
|
echo "To evaluate a release:"
|
|
echo " ./local/scripts/provision-release.sh --ref=<tag> --release=0.2.0 --dry-run"
|
|
echo ""
|
|
echo "To rebase on a release:"
|
|
echo " ./local/scripts/provision-release.sh --ref=<tag> --release=0.2.0"
|