Dune.psm1

$Class = @( Get-ChildItem -Path $PSScriptRoot\Class\*.ps1 -ErrorAction SilentlyContinue )
$Config = @( Get-ChildItem -Path $PSScriptRoot\Config\*.ps1 -ErrorAction SilentlyContinue )
$Public = @( Get-ChildItem -Path $PSScriptRoot\Public\*.ps1 -ErrorAction SilentlyContinue )
$Internal = @( Get-ChildItem -Path $PSScriptRoot\Internal\*.ps1 -ErrorAction SilentlyContinue )
$Private = @( Get-ChildItem -Path $PSScriptRoot\Private\*.ps1 -ErrorAction SilentlyContinue )

foreach ($Function in @($Config + $Class + $Public + $Internal + $Private)) {
    try {
        . $Function.FullName
    }
    catch {
        Write-Error -Message "Import function ($($Function.fullname)) failed: $_"
    }
}

Export-ModuleMember -Function $Public.Basename
Export-ModuleMember -Function $Internal.Basename # only for DuneInternal module

# Define aliases
New-Alias -Name cdu -Value Connect-Dune -ea SilentlyContinue
New-Alias -Name gdt -Value Get-DuneTenant -ea SilentlyContinue
New-Alias -Name gdc -Value Get-DuneCollection -ea SilentlyContinue
New-Alias -Name gdd -Value Get-DuneDeployment -ea SilentlyContinue
New-Alias -Name gdrg -Value Get-DuneResourceGroup -ea SilentlyContinue
New-Alias -Name gdrs -Value Get-DuneResource -ea SilentlyContinue
New-Alias -Name gdgr -Value Get-DuneGenericResource -ea SilentlyContinue
New-Alias -Name gdcn -Value Get-DuneComputeNode -ea SilentlyContinue
New-Alias -Name gdrp -Value Get-DuneResourceProvider -ea SilentlyContinue
New-Alias -Name gdj -Value Get-DuneJob -ea SilentlyContinue
New-Alias -Name gdje -Value Get-DuneJobEvent -ea SilentlyContinue
New-Alias -Name gddt -Value Get-DuneDeploymentTemplate -ea SilentlyContinue
New-Alias -Name gdrgt -Value Get-DuneResourceGroupTemplate -ea SilentlyContinue

Export-ModuleMember -Alias *