Skip to content

Instantly share code, notes, and snippets.

@tiagosomda
Created April 9, 2024 19:21
Show Gist options
  • Save tiagosomda/7e838960cf73b0602f0981bd4a486fb0 to your computer and use it in GitHub Desktop.
Save tiagosomda/7e838960cf73b0602f0981bd4a486fb0 to your computer and use it in GitHub Desktop.
posh-git profile prompt
Import-Module posh-git

function prompt {
    $origLastExitCode = $LASTEXITCODE

    $prompt = "$($ExecutionContext.SessionState.Path.CurrentLocation)" 
    $prompt += "`n"
    if ($status = Get-GitStatus -Force) {
        $prompt += "["
        if ($status.HasWorking) {
            $prompt += (Write-GitWorkingDirStatusSummary $status -NoLeadingSpace) +
                       "$(Write-GitWorkingDirStatus $status) "
        }
        if ($status.HasWorking -and $status.HasIndex) {
            $prompt += "| "
        }
        if ($status.HasIndex) {
            $prompt += "$(Write-GitIndexStatus $status -NoLeadingSpace) "
        }
        $prompt += "$(Write-GitBranchStatus $status -NoLeadingSpace)$(Write-GitBranchName $status)]"
    }

    $prompt += "$(if ($PsDebugContext) {' [DBG]:'} else {''})$('>' * ($nestedPromptLevel + 1)) "

    $LASTEXITCODE = $origLastExitCode
    $prompt
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment