58 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
| Set-StrictMode -Version Latest
 | |
| $ErrorActionPreference = 'Stop'
 | |
| 
 | |
| $repoRoot = Split-Path -Parent $PSScriptRoot
 | |
| $pluginsDir = Join-Path $repoRoot 'plugins\notify'
 | |
| 
 | |
| $assemblies = @{
 | |
|     slack  = 'StellaOps.Notify.Connectors.Slack.dll'
 | |
|     teams  = 'StellaOps.Notify.Connectors.Teams.dll'
 | |
|     email  = 'StellaOps.Notify.Connectors.Email.dll'
 | |
|     webhook = 'StellaOps.Notify.Connectors.Webhook.dll'
 | |
| }
 | |
| 
 | |
| $hasFailures = $false
 | |
| 
 | |
| foreach ($channel in $assemblies.Keys) {
 | |
|     $dir = Join-Path $pluginsDir $channel
 | |
|     if (-not (Test-Path -LiteralPath $dir -PathType Container)) {
 | |
|         Write-Host "ERROR: Missing plug-in directory '$dir'."
 | |
|         $hasFailures = $true
 | |
|         continue
 | |
|     }
 | |
| 
 | |
|     $manifest = Join-Path $dir 'notify-plugin.json'
 | |
|     $assembly = Join-Path $dir $assemblies[$channel]
 | |
|     $baseName = [System.IO.Path]::GetFileNameWithoutExtension($assemblies[$channel])
 | |
|     $pdb = Join-Path $dir "$baseName.pdb"
 | |
|     $deps = Join-Path $dir "$baseName.deps.json"
 | |
| 
 | |
|     if (-not (Test-Path -LiteralPath $manifest -PathType Leaf)) {
 | |
|         Write-Host "ERROR: Missing manifest for '$channel' connector ($manifest)."
 | |
|         $hasFailures = $true
 | |
|     }
 | |
| 
 | |
|     if (-not (Test-Path -LiteralPath $assembly -PathType Leaf)) {
 | |
|         Write-Host "ERROR: Missing assembly for '$channel' connector ($assembly)."
 | |
|         $hasFailures = $true
 | |
|     }
 | |
| 
 | |
|     Get-ChildItem -LiteralPath $dir -File | ForEach-Object {
 | |
|         switch ($_.Name) {
 | |
|             'notify-plugin.json' { return }
 | |
|             { $_.Name -eq $assemblies[$channel] } { return }
 | |
|             { $_.Name -eq "$baseName.pdb" } { return }
 | |
|             { $_.Name -eq "$baseName.deps.json" } { return }
 | |
|             default {
 | |
|                 Write-Host "ERROR: Unexpected file '$($_.Name)' in '$dir'."
 | |
|                 $hasFailures = $true
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| if ($hasFailures) {
 | |
|     exit 1
 | |
| }
 | |
| exit 0
 |