Private/Confirm-PackagePath.ps1

<#
    ProvisioningTools — Automates creation of Windows provisioning packages.
    Copyright (C) 2022 David Haymond.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program. If not, see <https://www.gnu.org/licenses/>.
#>


function Confirm-PackagePath {
    [OutputType($null, [string])]
    param (
        [string] $ComputerName,
        [string] $Path,
        [switch] $Force
    )

    if (Test-Path -Path $Path -PathType Leaf) {
        if ($Force) {
            New-Item -ItemType Directory -Path $Path -Force
        }
        else {
            throw "A file already exists at the path `"$Path`". (Use the -Force parameter to overwrite files.)"
        }
    }

    $ppkgPath = Join-Path -Path $Path -ChildPath "$ComputerName.ppkg"
    if (!$Force -and (Test-Path -Path $ppkgPath)) {
        Write-Error "An item already exists at the path `"$ppkgPath`". (Use the -Force parameter to overwrite files.)"
    }
    else {
        $ppkgPath
    }
}