Starships looks very interesting! I’m going to check it out. Thanks!
Starships looks very interesting! I’m going to check it out. Thanks!
Well, yeah, but it’s git: https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh
My thinking is that I trust git on my computer, so I trust downloading from their repo.
But you’re right. I should revisit this and see if it’s even necessary.
Mine shows the user and host, git commit and branch, docker context and directory, color coded based on status of git:
[root@server001|G:19e526e@(master)|D:myContext|currentDir] $
## PS1 adapted from https://gist.github.com/xenji/2292341
ps1_generator() {
# docker context inspect --format '{{ .Name }}'
Time12h="\T"; Time12a="\@"; ShortHost="\h"; Username="\u";
PathShort="\W"; PathFull="\w"; NewLine="\n"; Jobs="\j";
test -f ~/.config/git-prompt.sh || \
curl -L https://raw.github.com/git/git/master/contrib/compl
etion/git-prompt.sh \
> ~/.config/git-prompt.sh
source ~/.config/git-prompt.sh
Color_Off="\[\033[0m\]"; IBlack="\[\033[0;90m\]"; BWhite="\[\03
3[1;37m\]"; BGreen="\[\033[1;32m\]";
BIRed="\[\033[1;91m\]"; BIWhite="\[\033[1;97m\]"; BIPurple="\[\
033[1;95m\]"; BIBlue="\[\033[1;94m\]";
GIT_PS1='$(git branch &>/dev/null;\
if [ $? -eq 0 ]; then \
echo "$(echo `git status` | \grep "nothing to commit" > /dev/null
2>&1; \
DIRTY="$?"; \
HEADREV=`git log --pretty=%h -n 1`; \
echo -n "|G:'${BWhite}'$HEADREV"; \
if [ "$DIRTY" -eq "0" ]; then \
# @4 - Clean repository - nothing to commit
echo "@'${BGreen}'"$(__git_ps1 "(%s)"); \
else \
# @5 - Changes to working tree
echo "'${BIBlue}'@'${BIRed}'"$(__git_ps1 "{%s}"); \
fi)'${Color_Off}'"; \
else \
# @2 - Prompt when not in GIT repo
echo ""; \
fi)'
if docker context inspect >/dev/null 2>&1; then
DOCKER_PS1='|D:'${BIBlue}'$(docker context inspect --format
"{{ .Name }}")'${Color_Off}
fi
USER_PS1=${BIPurple}${Username}'@'${ShortHost}${Color_Off}
PATH_PS1='|'${BWhite}${PathShort}${Color_Off}
export PS1='['${USER_PS1}${GIT_PS1}${DOCKER_PS1}${PATH_PS1}'] $
'
}
ps1_generator && unset -f ps1_generator
It is in my .bashrc, but any delay is not noticeable.