Files
schema/scripts/validateLanguage.sh
T

48 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# validateLanguages.sh - Validates languages against Radarr and Sonarr source
set -e
RADARR_URL="https://raw.githubusercontent.com/Radarr/Radarr/develop/src/NzbDrone.Core/Languages/Language.cs"
SONARR_URL="https://raw.githubusercontent.com/Sonarr/Sonarr/develop/src/NzbDrone.Core/Languages/Language.cs"
LANG_FILE="schema/1.languages.sql"
echo "Fetching Radarr languages..."
RADARR_LANGS=$(curl -s "$RADARR_URL" | grep "public static Language" | grep -oP '=> new Language\(-?\d+, "\K[^"]+' | sort -u)
echo "Found Radarr languages:"
echo "$RADARR_LANGS"
echo ""
echo "Fetching Sonarr languages..."
SONARR_LANGS=$(curl -s "$SONARR_URL" | grep "public static Language" | grep -oP '=> new Language\(-?\d+, "\K[^"]+' | sort -u)
echo "Found Sonarr languages:"
echo "$SONARR_LANGS"
echo ""
echo "Extracting languages from schema..."
SCHEMA_LANGS=$(grep -oP "(?<=\(')[^']+(?='\))" "$LANG_FILE" | sort -u)
echo ""
echo "=== Radarr Validation ==="
RADARR_MISSING=$(comm -23 <(echo "$RADARR_LANGS") <(echo "$SCHEMA_LANGS"))
if [ -n "$RADARR_MISSING" ]; then
echo "✗ Missing Radarr languages:"
echo "$RADARR_MISSING"
exit 1
else
echo "✓ All Radarr languages present ($(echo "$RADARR_LANGS" | wc -l))"
fi
echo ""
echo "=== Sonarr Validation ==="
SONARR_MISSING=$(comm -23 <(echo "$SONARR_LANGS") <(echo "$SCHEMA_LANGS"))
if [ -n "$SONARR_MISSING" ]; then
echo "✗ Missing Sonarr languages:"
echo "$SONARR_MISSING"
exit 1
else
echo "✓ All Sonarr languages present ($(echo "$SONARR_LANGS" | wc -l))"
fi
echo ""
echo "Total unique languages in schema: $(echo "$SCHEMA_LANGS" | wc -l)"