psake.ps1
# Helper script for those who want to run psake without importing the module. # Example run from PowerShell: # .\psake.ps1 "default.ps1" "BuildHelloWord" "4.0" # Must match parameter definitions for psake.psm1/invoke-psake # otherwise named parameter binding fails param( [Parameter(Position=0,Mandatory=0)] [string]$buildFile, [Parameter(Position=1,Mandatory=0)] [string[]]$taskList = @(), [Parameter(Position=2,Mandatory=0)] [string]$framework, [Parameter(Position=3,Mandatory=0)] [switch]$docs = $false, [Parameter(Position=4,Mandatory=0)] [System.Collections.Hashtable]$parameters = @{}, [Parameter(Position=5, Mandatory=0)] [System.Collections.Hashtable]$properties = @{}, [Parameter(Position=6, Mandatory=0)] [alias("init")] [scriptblock]$initialization = {}, [Parameter(Position=7, Mandatory=0)] [switch]$nologo = $false, [Parameter(Position=8, Mandatory=0)] [switch]$help = $false, [Parameter(Position=9, Mandatory=0)] [string]$scriptPath, [Parameter(Position=10,Mandatory=0)] [switch]$detailedDocs = $false ) # setting $scriptPath here, not as default argument, to support calling as "powershell -File psake.ps1" if (!$scriptPath) { $scriptPath = $(Split-Path -parent $MyInvocation.MyCommand.path) } # '[p]sake' is the same as 'psake' but $Error is not polluted remove-module [p]sake import-module (join-path $scriptPath psake.psm1) if ($help) { Get-Help Invoke-psake -full return } if ($buildFile -and (-not(test-path $buildFile))) { $absoluteBuildFile = (join-path $scriptPath $buildFile) if (test-path $absoluteBuildFile) { $buildFile = $absoluteBuildFile } } Invoke-psake $buildFile $taskList $framework $docs $parameters $properties $initialization $nologo $detailedDocs |