Initial commit: Complete project foundation with all documentation, scripts, and project structure
This commit is contained in:
87
scripts/validate_assets.sh
Executable file
87
scripts/validate_assets.sh
Executable file
@@ -0,0 +1,87 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Dubai Metaverse - Asset Validation Script
|
||||
# Validates asset naming conventions and structure
|
||||
|
||||
set -e # Exit on error
|
||||
|
||||
echo "=========================================="
|
||||
echo "Dubai Metaverse - Asset Validation"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# Check if Content directory exists
|
||||
if [ ! -d "Content" ]; then
|
||||
echo "Error: Content directory not found"
|
||||
echo "Run this script from the UE5 project root directory"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ERRORS=0
|
||||
WARNINGS=0
|
||||
|
||||
# Function to check naming convention
|
||||
check_naming() {
|
||||
local file="$1"
|
||||
local basename=$(basename "$file")
|
||||
|
||||
# Check for spaces
|
||||
if [[ "$basename" == *" "* ]]; then
|
||||
echo " ❌ ERROR: Contains spaces: $basename"
|
||||
((ERRORS++))
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Check for special characters (except underscores and hyphens)
|
||||
if [[ "$basename" =~ [^a-zA-Z0-9_\-\.] ]]; then
|
||||
echo " ❌ ERROR: Contains invalid characters: $basename"
|
||||
((ERRORS++))
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Check prefix based on extension
|
||||
local ext="${basename##*.}"
|
||||
case "$ext" in
|
||||
uasset)
|
||||
if [[ ! "$basename" =~ ^(SM_|SK_|M_|MI_|BP_|ABP_|BT_|P_|A_|SQ_|CineCamera_|DA_|WBP_|PCG_|D_|PP_) ]]; then
|
||||
echo " ⚠ WARNING: Missing prefix: $basename"
|
||||
((WARNINGS++))
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# Other file types - basic validation only
|
||||
;;
|
||||
esac
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Scan Content directory for assets
|
||||
echo "Scanning Content directory..."
|
||||
echo ""
|
||||
|
||||
find Content -type f -name "*.uasset" -o -name "*.umap" | while read -r file; do
|
||||
check_naming "$file"
|
||||
done
|
||||
|
||||
# Summary
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "Validation Complete"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "Errors: $ERRORS"
|
||||
echo "Warnings: $WARNINGS"
|
||||
echo ""
|
||||
|
||||
if [ $ERRORS -eq 0 ] && [ $WARNINGS -eq 0 ]; then
|
||||
echo "✓ All assets passed validation"
|
||||
exit 0
|
||||
elif [ $ERRORS -eq 0 ]; then
|
||||
echo "⚠ Some warnings found, but no errors"
|
||||
exit 0
|
||||
else
|
||||
echo "❌ Validation failed. Please fix errors before committing."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user