mirror of
https://dev.azure.com/effectory/Survey%20Software/_git/Cloud%20Engineering
synced 2026-02-27 18:52:18 +01:00
41 lines
1.0 KiB
PowerShell
41 lines
1.0 KiB
PowerShell
using namespace System.Management.Automation.Language
|
|
|
|
Build-Module -Path (Resolve-Path -Path $PSScriptRoot\*\build.psd1)
|
|
|
|
$rootModulePath = @{
|
|
Path = $PSScriptRoot
|
|
ChildPath = 'build\*\*\*.psm1'
|
|
}
|
|
$rootModule = Join-Path @rootModulePath | Resolve-Path
|
|
$tokens = $errors = $null
|
|
$ast = [Parser]::ParseFile(
|
|
$rootModule,
|
|
[ref]$tokens,
|
|
[ref]$errors
|
|
)
|
|
$dscResourcesToExport = $ast.FindAll(
|
|
{
|
|
param ( $node )
|
|
|
|
$node -is [TypeDefinitionAst] -and
|
|
$node.IsClass -and
|
|
$node.Attributes.TypeName.FullName -contains 'DscResource'
|
|
},
|
|
$true
|
|
).Name
|
|
|
|
if ($dscResourcesToExport) {
|
|
$moduleManifestPath = @{
|
|
Path = $pwd
|
|
ChildPath = 'build\*\*\*.psd1'
|
|
}
|
|
$moduleManifest = Join-Path @moduleManifestPath |
|
|
Get-Item |
|
|
Where-Object { $_.BaseName -eq $_.Directory.Parent.Name }
|
|
|
|
$updateParams = @{
|
|
Path = $moduleManifest
|
|
DscResourcesToExport = $dscResourcesToExport
|
|
}
|
|
Update-ModuleManifest @updateParams
|
|
} |