Skip to content

Export Cmdlets

Export Cmdlets #91

name: Export Cmdlets
on: workflow_dispatch
# push:
# branches: [main]
jobs:
Export_Cmdlets:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Update Module Manifest
shell: pwsh
run: |
Write-Host "Updating changes to Module.."
Copy-Item "./Modules/BloxOne-Main.ps1" "./Modules/ibPS/BloxOne-Main.psm1" -Force
Write-Host "Testing Module Manifest.."
$Module = Test-ModuleManifest -Path "./Modules/ibPS/ibPS.psd1"
## Functions to export
$B1PublicFunctions = Get-ChildItem "./Modules/ibPS/Functions/BloxOne/" -Exclude Private | Get-ChildItem -Recurse
$NIOSPublicFunctions = Get-ChildItem "./Modules/ibPS/Functions/NIOS/" -Exclude Private | Get-ChildItem -Recurse
$MiscellaneousFunctions = Get-ChildItem "./Modules/ibPS/Functions/Misc/*.ps1" | Where-Object {$_.BaseName -ne 'Misc'}
$AdditionalFunctionsToExport = @('Invoke-CSP')
## Export Aliases
Write-Host "Exporting aliases.."
$null = Import-Module './Modules/ibPS/BloxOne-Main.psm1'
$null = Resolve-DoHQuery -Query google.com -DoHServer 1.1.1.1
$Aliases = (Get-Alias | Where-Object {$_.Source -eq "BloxOne-Main"}).Name
## Export Functions
Write-Host "Exporting functions.."
Update-ModuleManifest "./Modules/ibPS/ibPS.psd1" -FunctionsToExport ($(@($B1PublicFunctions + $NIOSPublicFunctions + $MiscellaneousFunctions) | Select-Object -ExpandProperty BaseName) + $AdditionalFunctionsToExport) -AliasesToExport $Aliases
## Export Manifest info to JSON file
Write-Host "Counting functions.."
$Module = Test-ModuleManifest -Path "./Modules/ibPS/ibPS.psd1" | Select-Object Name,@{name="Version";expression={$_.Version.ToString()}},Description,Author,ProjectUri,LicenseUri,ReleaseNotes,CompanyName,Copyright,ExportedFunctions
$Module | Add-Member -MemberType NoteProperty -Name "Count" -Value $Module.ExportedFunctions.Count
$Module | Select-Object -ExcludeProperty ExportedFunctions | ConvertTo-Json -Depth 5 | Out-File ./docs/manifest.json -Force
- name: Update Repository
run: |
git config --global user.name ${{ github.actor }}
git config --global user.password ${{ secrets.GIT_ACTIONS }}
git config --global user.email 'mat.cox@tmmn.uk'
git add .
git status
if ! git diff-index --quiet HEAD; then
git commit -m "Update Exported Module Cmdlets"
git push
fi