Last active
June 1, 2018 20:21
-
-
Save korutx/5b2be0fedd21012d128af920e92fd170 to your computer and use it in GitHub Desktop.
Custom Prompt for git and kubectl useful info. fast and pragmatic version.
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/sh | |
# @Author: @korutx | |
# @Date: 2018-05-31 12:18:34 | |
# @Last Modified time: 2018-05-31 12:18:34 | |
# | |
# Using: Add the following lines to .bashrc | |
# | |
# if [ -f ~/bin/my_prompt.sh ]; then | |
# . ~/bin/my_prompt.sh | |
# fi | |
# Reset | |
Color_Off="\[\033[0m\]" # Text Reset | |
# Regular Colors | |
Black="\[\033[0;30m\]" # Black | |
Red="\[\033[0;31m\]" # Red | |
Green="\[\033[0;32m\]" # Green | |
Yellow="\[\033[0;33m\]" # Yellow | |
Blue="\[\033[0;34m\]" # Blue | |
Purple="\[\033[0;35m\]" # Purple | |
Cyan="\[\033[0;36m\]" # Cyan | |
White="\[\033[0;37m\]" # White | |
# Bold | |
BBlack="\[\033[1;30m\]" # Black | |
BRed="\[\033[1;31m\]" # Red | |
BGreen="\[\033[1;32m\]" # Green | |
BYellow="\[\033[1;33m\]" # Yellow | |
BBlue="\[\033[1;34m\]" # Blue | |
BPurple="\[\033[1;35m\]" # Purple | |
BCyan="\[\033[1;36m\]" # Cyan | |
BWhite="\[\033[1;37m\]" # White | |
# Underline | |
UBlack="\[\033[4;30m\]" # Black | |
URed="\[\033[4;31m\]" # Red | |
UGreen="\[\033[4;32m\]" # Green | |
UYellow="\[\033[4;33m\]" # Yellow | |
UBlue="\[\033[4;34m\]" # Blue | |
UPurple="\[\033[4;35m\]" # Purple | |
UCyan="\[\033[4;36m\]" # Cyan | |
UWhite="\[\033[4;37m\]" # White | |
# Background | |
On_Black="\[\033[40m\]" # Black | |
On_Red="\[\033[41m\]" # Red | |
On_Green="\[\033[42m\]" # Green | |
On_Yellow="\[\033[43m\]" # Yellow | |
On_Blue="\[\033[44m\]" # Blue | |
On_Purple="\[\033[45m\]" # Purple | |
On_Cyan="\[\033[46m\]" # Cyan | |
On_White="\[\033[47m\]" # White | |
# High Intensty | |
IBlack="\[\033[0;90m\]" # Black | |
IRed="\[\033[0;91m\]" # Red | |
IGreen="\[\033[0;92m\]" # Green | |
IYellow="\[\033[0;93m\]" # Yellow | |
IBlue="\[\033[0;94m\]" # Blue | |
IPurple="\[\033[0;95m\]" # Purple | |
ICyan="\[\033[0;96m\]" # Cyan | |
IWhite="\[\033[0;97m\]" # White | |
# Bold High Intensty | |
BIBlack="\[\033[1;90m\]" # Black | |
BIRed="\[\033[1;91m\]" # Red | |
BIGreen="\[\033[1;92m\]" # Green | |
BIYellow="\[\033[1;93m\]" # Yellow | |
BIBlue="\[\033[1;94m\]" # Blue | |
BIPurple="\[\033[1;95m\]" # Purple | |
BICyan="\[\033[1;96m\]" # Cyan | |
BIWhite="\[\033[1;97m\]" # White | |
# High Intensty backgrounds | |
On_IBlack="\[\033[0;100m\]" # Black | |
On_IRed="\[\033[0;101m\]" # Red | |
On_IGreen="\[\033[0;102m\]" # Green | |
On_IYellow="\[\033[0;103m\]" # Yellow | |
On_IBlue="\[\033[0;104m\]" # Blue | |
On_IPurple="\[\033[10;95m\]" # Purple | |
On_ICyan="\[\033[0;106m\]" # Cyan | |
On_IWhite="\[\033[0;107m\]" # White | |
# Various variables you might want for your PS1 prompt instead | |
Time12h="\T" | |
Time12a="\@" | |
PathShort="\W" | |
PathFull="\w" | |
NewLine="\n" | |
Jobs="\j" | |
function kubectl_installed { | |
kubectl version &> /dev/null | |
} | |
function kubectl_parse_current_context { | |
#if kubectl_installed | |
#then | |
local KCONTEXT=$(cat ~/.kube/config | grep current-context | cut -d' ' -f2) | |
echo -n $KCONTEXT | |
#fi | |
} | |
function prompt_kubectl { | |
# if kubectl_installed | |
# then | |
#echo "" | |
echo "-[ KUBECTL ]-[ `kubectl_parse_current_context` ]-" | |
# fi | |
} | |
function git_work_tree { | |
git rev-parse --is-inside-work-tree &> /dev/null | |
} | |
function parse_git_branch { | |
if git_work_tree | |
then | |
local BR=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD 2> /dev/null) | |
if [ "$BR" == HEAD ] | |
then | |
local NM=$(git name-rev --name-only HEAD 2> /dev/null) | |
if [ "$NM" != undefined ] | |
then echo -n "@$NM" | |
else git rev-parse --short HEAD 2> /dev/null | |
fi | |
else | |
echo -n $BR | |
fi | |
fi | |
} | |
function parse_git_status { | |
if git_work_tree | |
then | |
local ST=$(git status --short 2> /dev/null) | |
if [ -n "$ST" ] | |
then echo -n " Modificaciones pendientes " | |
else echo -n " Sin Modificaciones " | |
fi | |
fi | |
} | |
function prompt_git { | |
if git_work_tree | |
then | |
echo "" | |
echo "-[ GIT ]-[ `parse_git_branch` ]-[ `parse_git_status` ]-" | |
fi | |
} | |
function dir_pwd { | |
if [ "$PWD" = "$HOME" ] | |
then echo -n "~" | |
else pwd | |
#| sed -e "s|\(.*/\).*|\1|" | |
fi | |
} | |
export -f git_work_tree parse_git_branch parse_git_status prompt_git prompt_kubectl kubectl_parse_current_context dir_pwd | |
export PS1="\n-[$BIGreen \u@\h $Color_Off]-[ $BIRed\`dir_pwd\`$Color_Off ][ $BYellow\`date "+%T"\`$Color_Off ]\`prompt_git\` \n\`prompt_kubectl\`\n $IGreen # ->$Color_Off " | |
export TERM="xterm-color" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment