cliHelper.core.psm1
|
#!/usr/bin/env pwsh using namespace System # #Requires -RunAsAdministrator #Requires -Modules cliHelper.xconvert, cryptobase #Requires -Psedition Core # Load all sub-modules : using module Private/Capstone.psm1 using module Private/Colors.psm1 using module Private/Config.psm1 using module Private/Connectivity.psm1 using module Private/Console.psm1 using module Private/DllUtils.psm1 using module Private/DNS.psm1 using module Private/Enums.psm1 using module Private/ErrorMan.psm1 using module Private/Exceptions.psm1 using module Private/ExecTracer.psm1 using module Private/FontMan.psm1 using module Private/FTP.psm1 using module Private/Geolocation.psm1 using module Private/HelpTools.psm1 using module Private/IPManagement.psm1 using module Private/Models.psm1 using module Private/MotdGen.psm1 using module Private/Network.psm1 using module Private/Proxy.psm1 using module Private/Runner.psm1 using module Private/Security.psm1 using module Private/Utilities.psm1 using module Private/WebTools.psm1 # Types that will be available to users when they import the module. $typestoExport = @( [Capstone], [Color], [RGB], [InstallRequirements], [Requirement], [ProfileConfig], [PsProfile], [dotProfile], [AsyncPingResult], [Connectivity], [ConsoleCoordinate], [ConsoleReader], [ConsoleWriter], [DllUtils], [DNS], [ErrorSeverity], [HostOS], [MotdArtName], [Activity], [ActivityLog], [ErrorLog], [ErrorManager], [ErrorMetadata], [ExceptionType], [InstallException], [InstallFailedException], [TimeLine], [ExecMeasurement], [PSPVisitor], [ExecTracer], [FontMan], [FTP], [Geolocation], [HelpTools], [IPManagement], [PsRecord], [NetRouteDiagnostics], [TestNetConnectionResult], [cliart], [MotdGen], [HostsEntry], [HostsFile], [NetworkManager], [Proxy], [shExpMatch], [JobResult], [BackgroundJob], [AsyncHandle], [AsyncResult], [ProgressTheme], [JobRunnerOptions], [ThreadRunner], [PsRunner], [Security], [FileTools], [HashTools], [HostTools], [ModuleTools], [ProgressUtil], [StringTools], [dlh] ) $TypeAcceleratorsClass = [PsObject].Assembly.GetType('System.Management.Automation.TypeAccelerators') # Add type accelerators for every exportable type. foreach ($Type in $typestoExport) { try { [void]$TypeAcceleratorsClass::Add($Type.FullName, $Type) } catch { # Ignore if already exists $null } } # Remove type accelerators when the module is removed. $MyInvocation.MyCommand.ScriptBlock.Module.OnRemove = { foreach ($Type in $typestoExport) { $TypeAcceleratorsClass::Remove($Type.FullName) } }.GetNewClosure(); $scripts = @(); $Public = Get-ChildItem "$PSScriptRoot/Public" -Filter "*.ps1" -Recurse -ErrorAction SilentlyContinue $scripts += Get-ChildItem "$PSScriptRoot/Private" -Filter "*.ps1" -Recurse -ErrorAction SilentlyContinue $scripts += $Public foreach ($file in $scripts) { try { if ([string]::IsNullOrWhiteSpace($file.fullname)) { continue } . "$($file.fullname)" } catch { Write-Warning "Failed to import function $($file.BaseName): $_" $host.UI.WriteErrorLine($_) } } $Param = @{ Function = $Public.BaseName Cmdlet = '*' Alias = '*' Verbose = $false } Export-ModuleMember @Param |