X-Git-Url: https://git.phdru.name/?p=dotfiles.git;a=blobdiff_plain;f=.bash_prompt;h=6126ef25240e8358dbb2ef4f25f09c420072f18c;hp=f7ae3bbd991b41a40f4d9fc712d7dc0ca68d5808;hb=HEAD;hpb=36fa779cd03ddada6324c8b5b38145dc3b0a8b41 diff --git a/.bash_prompt b/.bash_prompt deleted file mode 100644 index f7ae3bb..0000000 --- a/.bash_prompt +++ /dev/null @@ -1,146 +0,0 @@ -#!/bin/bash - -# bash_prompt; adapted from -# https://github.com/necolas/dotfiles/blob/master/shell/bash_prompt - -# Example: -# nicolas@host: ~/.dotfiles on master [+!?$] -# $ - -# Screenshot: http://i.imgur.com/DSJ1G.png -# iTerm2 prefs: import Solarized theme (disable bright colors for bold text) -# Color ref: http://vim.wikia.com/wiki/Xterm256_color_names_for_console_Vim -# More tips: http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html - -prompt_git() { - local s="" - local branchName="" - - # check if the current directory is in a git repository - if [ $(git rev-parse --is-inside-work-tree &>/dev/null; printf "%s" $?) == 0 ]; then - - # check if the current directory is in .git before running git checks - if [ "$(git rev-parse --is-inside-git-dir 2> /dev/null)" == "false" ]; then - - # ensure index is up to date - #git update-index --really-refresh -q &>/dev/null - - # check for uncommitted changes in the index - if ! $(git diff --quiet --ignore-submodules --cached); then - s="$s+"; - fi - - # check for unstaged changes - if ! $(git diff-files --quiet --ignore-submodules --); then - s="$s!"; - fi - - # check for untracked files - if [ -n "$(git ls-files --others --exclude-standard)" ]; then - s="$s?"; - fi - - # check for stashed files - if $(git rev-parse --verify refs/stash &>/dev/null); then - s="$s$"; - fi - - fi - - # get the short symbolic ref - # if HEAD isn't a symbolic ref, get the short SHA - # otherwise, just give up - branchName="$(git symbolic-ref --quiet --short HEAD 2> /dev/null || \ - git rev-parse --short HEAD 2> /dev/null || \ - printf "(unknown)")" - - [ -n "$s" ] && s=" [$s]" - - printf "%s" "$1$branchName$s" - else - return - fi -} - -set_prompts() { - local black="" - local blue="" - local bold="" - local cyan="" - local green="" - local orange="" - local purple="" - local red="" - local reset="" - local white="" - local yellow="" - - local hostStyle="" - local userStyle="" - - if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then - tput sgr0 # reset colors - - bold=$(tput bold) - reset=$(tput sgr0) - - # Solarized colors - # (https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized#the-values) - black=$(tput setaf 0) - blue=$(tput setaf 33) - cyan=$(tput setaf 37) - green=$(tput setaf 64) - orange=$(tput setaf 166) - purple=$(tput setaf 125) - red=$(tput setaf 124) - white=$(tput setaf 15) - yellow=$(tput setaf 136) - else - bold="" - reset="\e[0m" - - black="\e[1;30m" - blue="\e[1;34m" - cyan="\e[1;36m" - green="\e[1;32m" - orange="\e[1;33m" - purple="\e[1;35m" - red="\e[1;31m" - white="\e[1;37m" - yellow="\e[1;33m" - fi - - # build the prompt - - # logged in as root - if [[ "$USER" == "root" ]]; then - userStyle="\[$bold$red\]" - else - userStyle="\[$orange\]" - fi - - # connected via ssh - if [[ "$SSH_TTY" ]]; then - hostStyle="\[$bold$red\]" - else - hostStyle="\[$yellow\]" - fi - - # set the terminal title to the current working directory - PS1="\[\033]0;\w\007\]" - - PS1+="\n" # newline - PS1+="\[$userStyle\]\u" # username - PS1+="\[$reset$white\]@" - PS1+="\[$hostStyle\]\h" # host - PS1+="\[$reset$white\]: " - PS1+="\[$green\]\w" # working directory - PS1+="\$(prompt_git \"$white on $cyan\")" # git repository details - PS1+="\n" - PS1+="\[$reset$white\]\$ \[$reset\]" # $ (and reset color) - - export PS1 -} - -set_prompts -unset set_prompts