install-local.ps1

#Requires -Version 5.1
[CmdletBinding()]
param(
    [switch]$Uninstall
)

$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
$UserModuleDir = Join-Path ([Environment]::GetFolderPath('MyDocuments')) "WindowsPowerShell\Modules\cleanarch"

if ($Uninstall) {
    Write-Host "Cleaning up local development module..." -ForegroundColor Yellow
    Remove-Item $UserModuleDir -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Module cleanarch -ErrorAction SilentlyContinue
    Remove-Item Function:\cleanarch-new -ErrorAction SilentlyContinue
    Remove-Item Function:\cleanarch-version -ErrorAction SilentlyContinue
    Remove-Item Function:\cleanarch-update -ErrorAction SilentlyContinue
    Remove-Item Function:\cleanarch-uninstall -ErrorAction SilentlyContinue
    Write-Host "Local development module successfully uninstalled." -ForegroundColor Green
    return
}

Write-Host "Installing local cleanarch module for development..." -ForegroundColor Cyan
if (-not (Test-Path $UserModuleDir)) {
    New-Item -ItemType Directory -Path $UserModuleDir -Force | Out-Null
}

Copy-Item "$ScriptDir\*" $UserModuleDir -Recurse -Force
Import-Module (Join-Path $UserModuleDir "cleanarch.psd1") -Force -Global
Write-Host "Local development module installed and loaded! You can now run 'cleanarch-new'." -ForegroundColor Green