Last active
August 29, 2018 10:56
-
-
Save egrouse/2bf77484973fb825a9ee0d83e720dfdc to your computer and use it in GitHub Desktop.
git PS1 for bash
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set_prompt() | |
{ | |
local last_cmd=$? | |
local txtreset='$(tput sgr0)' | |
local txtbold='$(tput bold)' | |
local txtblack='$(tput setaf 0)' | |
local txtred='$(tput setaf 1)' | |
local txtgreen='$(tput setaf 2)' | |
local txtyellow='$(tput setaf 3)' | |
local txtblue='$(tput setaf 4)' | |
local txtpurple='$(tput setaf 5)' | |
local txtcyan='$(tput setaf 6)' | |
local txtwhite='$(tput setaf 7)' | |
local txtnormal='$(tput sgr0)' | |
# unicode "✗" | |
local fancyx='\342\234\227' | |
# unicode "✓" | |
local checkmark='\342\234\223' | |
# Line 1: Full date + full time (24h) | |
# Line 2: current path | |
# PS1="\[$txtbold\]\[$txtwhite\]\n\D{%A %d %B %Y %H:%M:%S}\n\[$txtgreen\]\w\n" | |
PS1="\n\[$txtbold\]" | |
# User color: red for root, yellow for others | |
if [[ $EUID == 0 ]]; then | |
PS1+="\[$txtred\]" | |
else | |
PS1+="\[$txtyellow\]" | |
fi | |
# Line 3: user@host | |
PS1+="\u\[$txtwhite\]@\h " | |
# Line 4: a red "✗" or a green "✓" and the error number | |
if [[ $last_cmd == 0 ]]; then | |
PS1+="\[$txtgreen\]$checkmark \[$txtwhite\](0)" | |
else | |
PS1+="\[$txtred\]$fancyx \[$txtwhite\]($last_cmd)" | |
fi | |
# Line 4: green git branch | |
PS1+="\[$txtgreen\]$(__git_ps1 ' (%s)')\[$txtwhite\]" | |
# Line 4: good old prompt, $ for user, # for root | |
PS1+="\n\[$txtnormal\]\\$ " | |
} | |
PROMPT_COMMAND='set_prompt' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment