Functions/GenXdev.Coding.PowerShell.Modules/Search-NextGenXdevCmdlet.ps1
############################################################################### function Search-NextGenXdevCmdlet { [CmdletBinding(DefaultParameterSetName = 'Default')] [Alias('nextcmdlet')] param( ######################################################################## [Alias('Name', 'Module')] [parameter( ParameterSetName = 'Default', Mandatory = $false, Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, HelpMessage = 'Optional module name to filter cmdlets by' )] [ValidateNotNullOrEmpty()] [SupportsWildcards()] [string] $ModuleName = 'GenXdev.*', ######################################################################## [parameter( Mandatory = $false, Position = 3, HelpMessage = 'Key for storing the last cmdlet index' )] [AllowEmptyString()] [string] $Key = '', ######################################################################## [parameter( ParameterSetName = 'FromScripts', HelpMessage = 'Switch to scripts from the script folder' )] [switch] $FromScripts, ######################################################################## [parameter( Mandatory = $false, HelpMessage = 'Indicates to skip cmdlets that already have unit-tests' )] [switch] $OnlyNonExisting ) begin { # initialize cmdlet variable to track current cmdlet being processed $cmdlet = $null # build parameter hashtable for Get-GenXDevNextCmdLet $getNextParams = @{ ModuleName = $ModuleName Reset = $Reset RedoLast = $RedoLast Key = $Key OnlyNonExisting = $OnlyNonExisting } # conditionally add FromScripts parameter based on switches if ($Integrate -or $FromScripts) { $null = $getNextParams.Add('FromScripts', $true) } # get next cmdlet to process using constructed parameters $cmdlet = GenXdev.Coding\Get-GenXDevNextCmdLet @getNextParams Microsoft.PowerShell.Utility\Write-Verbose "Processing cmdlet: $($cmdlet.Name)" # prepare parameters for Assert-GenXdevCmdlet $params = @{ CmdletName = ($cmdlet.Name) } if ($FromScripts) { $null = $params.Add('FromScripts', $true) } } process { # search the current cmdlet with prepared parameters GenXdev.Coding\Search-GenXdevCmdlet @params } end { } } |