Psake Enhancements
Psake is a make
-like tool written in PowerShell. Instead of a makefile
you
write a psakefile.ps1
which consists of a set of tasks. Calling psake <task
name>
searches for a psakefile.ps1
in the current directory to then call the
given task. Most of the time I store my psakefile.ps1
in the root of my git
project, which means that I have to set the working directory of my terminal to
this directory. I have recently created a small PowerShell script which helps me
to remember task names (using fzf) while also giving me the option to call
psake
anywhere in my git projects:
$root = git rev-parse --show-toplevel if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } try { Push-Location $root # This search approach is not perfect, but works for my needs $tasks = Get-Content 'psakefile.ps1' | Select-String -Pattern '^task\s+(.+?)\s+' -AllMatches | ForEach-Object { $_.Matches.Groups[1].Value } $selectedTask = $tasks | fzf if ($selectedTask) { psake $selectedTask } } finally { Pop-Location }