ps/Modules/Cole.PowerShell.Developer/Public/Invoke-Build.ps1

51 lines
1.3 KiB
PowerShell
Raw Normal View History

2023-05-30 22:51:22 -07:00
function Invoke-Build {
<#
.SYNOPSIS
Run the build command in this or the appropriate parent folder from this folder
#>
[CmdletBinding()]
param (
[Parameter(Mandatory = $false, Position = 0, ValueFromRemainingArguments = $true)]
$CommandLineArguments
)
$logLead = (Get-LogLeadName)
$currentFolder = (Get-Location).Path
$taskPath = $null
do {
$taskPath = $null
$potentialPath = (Join-Path -Path $currentFolder -ChildPath "build.ps1")
if (Test-Path $potentialPath) {
$taskPath = $potentialPath
break
}
$currentFolder = (Get-Item $currentFolder).Parent.Name
# If the current folder is the root, it has no parent, so we can't recurse again
if ($null -eq $currentFolder) {
break
}
} while ([string]::IsNullOrWhiteSpace($taskPath))
if ([string]::IsNullOrWhiteSpace($taskPath)) {
Write-Warning "$logLead : No build path could be found in current or parent paths."
return $null
}
Invoke-Expression "$taskPath $($CommandLineArguments -join ' ')"
}
New-Alias -Name build -Value Invoke-Build -Force
<#
New-Alias build .\build.ps1
New-Alias db .\db.ps1
New-Alias test .\test.ps1
New-Alias hosts .\hosts.ps1
New-Alias install .\install.ps1
New-Alias deploy .\deploy.ps1
#>