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 }