publish-local.ps1

param(
    [Parameter(Mandatory = $true)]
    [string]$ApiKey,

    [string]$Repository = 'PSGallery'
)

$ErrorActionPreference = 'Stop'

$moduleRoot = Split-Path -Parent $MyInvocation.MyCommand.Path
$manifestPath = Join-Path $moduleRoot 'Network-Tools.psd1'

$manifest = Test-ModuleManifest -Path $manifestPath
$moduleName = [string]$manifest.Name
$moduleVersion = [version]$manifest.Version

$published = Find-Module -Name $moduleName -Repository $Repository -ErrorAction SilentlyContinue
if ($null -ne $published) {
    $publishedVersion = [version]$published.Version
    if ($moduleVersion -le $publishedVersion) {
        throw "Manifest version $moduleVersion must be greater than published version $publishedVersion"
    }
}

Set-PSResourceRepository -Name $Repository -Trusted
Publish-PSResource -Path $moduleRoot -Repository $Repository -ApiKey $ApiKey -Verbose
Write-Host "Published $moduleName $moduleVersion to $Repository"