2023-07-20 00:12:46 +01:00
[ CmdletBinding ( ) ]
Param (
[ Parameter ( Mandatory = $True , Position = 1 ) ]
[ string ] $targetDir
)
# This script runs some simple checks to avoid conflicts between assets from different applications during build time.
$totalFailures = 0
# Verify if the Assets folder contains only sub-folders.
# The purpose is to avoid applications having assets files that might conflict with other applications.
# Applications should be setting their own directory for assets.
$targetAssetsDir = $targetDir + " /Assets "
$nonDirectoryAssetsItems = Get-ChildItem $targetAssetsDir -Attributes ! Directory
$directoryAssetsItems = Get-ChildItem $targetAssetsDir -Attributes Directory
if ( $directoryAssetsItems . Count -le 0 ) {
2026-03-03 01:27:52 -05:00
Write-Host -ForegroundColor Red " ERROR: No directories detected in " $nonDirectoryAssetsItems " . Are you sure this is the right path? `r `n "
2023-07-20 00:12:46 +01:00
$totalFailures + + ;
} elseif ( $nonDirectoryAssetsItems . Count -gt 0 ) {
2026-03-03 01:27:52 -05:00
Write-Host -ForegroundColor Red " ERROR: Detected " $nonDirectoryAssetsItems " files in " $targetAssetsDir " . Each application should use a named subdirectory for assets. `r `n "
2023-07-20 00:12:46 +01:00
$totalFailures + + ;
} else {
Write-Host -ForegroundColor Green " Only directories detected in " $targetAssetsDir " `r `n "
}
# Make sure there's no resources.pri file. Each application should use a different name for their own resources file path.
$resourcesPriFiles = Get-ChildItem $targetDir -Filter resources . pri
if ( $resourcesPriFiles . Count -gt 0 ) {
2026-03-03 01:27:52 -05:00
Write-Host -ForegroundColor Red " ERROR: Detected a resources.pri file in " $targetDir " . Each application should use a unique name for its resources file. `r `n "
2023-07-20 00:12:46 +01:00
$totalFailures + + ;
} else {
Write-Host -ForegroundColor Green " No resources.pri file detected in " $targetDir " `r `n "
}
# Each application should have their XAML files in their own paths to avoid these conflicts.
$resourcesPriFiles = Get-ChildItem $targetDir -Filter * . xbf
if ( $resourcesPriFiles . Count -gt 0 ) {
2026-03-03 01:27:52 -05:00
Write-Host -ForegroundColor Red " ERROR: Detected a .xbf file in " $targetDir " . Ensure all XAML files are placed in a subdirectory in each application. `r `n "
2023-07-20 00:12:46 +01:00
$totalFailures + + ;
} else {
Write-Host -ForegroundColor Green " No .xbf files detected in " $targetDir " `r `n "
}
if ( $totalFailures -gt 0 ) {
Write-Host -ForegroundColor Red " Found some errors when verifying " $targetDir " `r `n "
exit 1
}
exit 0