Private/Add-RocketGui.ps1

function Add-RocketGui {
    param(
        [string]$ViewDirectory = "views",
        [bool]$NeedFormsModule = $false
    )

    $message = "Adding Rocket GUI"
    Write-Progress -Activity $message -Status "10% Complete:" -PercentComplete 10
    $projectPath = $PWD
    $viewPath = Join-Path $projectPath $ViewDirectory
    New-Item -Path $viewPath -ItemType Directory | Out-Null
    Write-Progress -Activity $message -Status "30% Complete:" -PercentComplete 30
    New-Item -Path $viewPath -Name "index.html" -ItemType File | Out-Null
    Write-Progress -Activity $message -Status "50% Complete:" -PercentComplete 50
    New-Item -Path $viewPath -Name "layout.html" -ItemType File | Out-Null
    New-Item -Path $viewPath -Name "404.html" -ItemType File | Out-Null

    Write-Progress -Activity $message -Status "70% Complete:" -PercentComplete 70

    if ($NeedFormsModule) {
        $indexContent = Get-Content -Path "$PSScriptRoot\Templates\GUI\index-form.txt" -Raw
    } else {
        $indexContent = Get-Content -Path "$PSScriptRoot\Templates\GUI\index.txt" -Raw
    }

    Set-Content -Path "$viewPath\index.html" -Value $indexContent

    Write-Progress -Activity $message -Status "90% Complete:" -PercentComplete 90
    $layoutContent = Get-Content -Path "$PSScriptRoot\Templates\GUI\layout.txt" -Raw
    Set-Content -Path "$viewPath\layout.html" -Value $layoutContent

    $notFoundContent = Get-Content -Path "$PSScriptRoot\Templates\GUI\404.txt" -Raw
    Set-Content -Path "$viewPath\404.html" -Value $notFoundContent

    Write-Progress -Activity $message -Status "100% Complete:" -PercentComplete 100
}