+++ /dev/null
-#!/bin/bash
-
-# bash_prompt; adapted from
-# https://github.com/necolas/dotfiles/blob/master/shell/bash_prompt and
-# http://vitus-wagner.livejournal.com/1176589.html?thread=40146189#t40146189
-
-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 dim=""
- local green=""
- local orange=""
- local magenta=""
- local red=""
- local reset=""
- local white=""
- local yellow=""
-
- local dim_black=""
- local dim_blue=""
- local dim_bold=""
- local dim_cyan=""
- local dim_green=""
- local dim_orange=""
- local dim_magenta=""
- local dim_red=""
- local dim_white=""
- local dim_yellow=""
-
- local charStyle=""
- local gitStyle=""
- local hostStyle=""
- local userStyle=""
- local wdirStyle=""
-
- if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
- tput sgr0 # reset colors
-
- bold=$(tput bold)
- dim=$(tput dim)
- reset=$(tput sgr0)
-
- black=$(tput setaf 0)
- blue=$(tput setaf 4)
- cyan=$(tput setaf 6)
- green=$(tput setaf 2)
- orange=$(tput setaf 3)
- magenta=$(tput setaf 5)
- red=$(tput setaf 1)
- white=$bold$(tput setaf 7)
- yellow=$(tput setaf 3)
-
- dim_black=$dim$black
- dim_blue=$dim$blue
- dim_cyan=$dim$cyan
- dim_green=$dim$green
- dim_orange=$dim$orange
- dim_magenta=$dim$magenta
- dim_red=$dim$red
- dim_white=$dim$white
- dim_yellow=$dim$yellow
- else
- bold=""
- dim=""
- reset="\e[0m"
-
- black="\e[0;30m"
- blue="\e[0;34m"
- cyan="\e[0;36m"
- green="\e[0;32m"
- orange="\e[0;33m"
- magenta="\e[0;35m"
- red="\e[0;31m"
- white="\e[0;37m"
- yellow="\e[0;33m"
-
- dim_black="\e[1;30m"
- dim_blue="\e[1;34m"
- dim_cyan="\e[1;36m"
- dim_green="\e[1;32m"
- dim_orange="\e[1;33m"
- dim_magenta="\e[1;35m"
- dim_red="\e[1;31m"
- dim_white="\e[1;37m"
- dim_yellow="\e[1;33m"
- fi
-
- charStyle="$reset$bold$black"
- gitStyle="\[$white\]on \[$magenta\]"
- case "$BACKGROUND" in
- DARK|dark)
- hostStyle="$reset$cyan"
- ;;
- LIGHT|light)
- hostStyle="$reset$blue"
- ;;
- esac
- wdirStyle="$reset$green"
-
-
- # logged in as root
- if [[ "$USER" == "root" ]]; then
- userStyle="$bold$red"
- else
- userStyle="$orange"
- fi
-
- # build the prompt
- # display the user, host and current working directory in the terminal title
- case "$TERM" in
- *rxvt*|screen*|*term*|vt100)
- PS1="\[\033]0;\u@\h:\w\007\]"
- case "$TERM" in
- screen*)
- PS1+="\[\033k\u@\h:\w\033\\\]" # Set screen/tmux caption
- ;;
- esac
- ;;
-
- *)
- PS1=""
- ;;
- esac
-
- #PS1+="\n" # newline
- PS1+="\[$userStyle\]\u" # username
- PS1+="\[$charStyle\]@"
- PS1+="\[$hostStyle\]\h " # host
- #PS1+="\[$charStyle\]: "
- PS1+="\[$wdirStyle\]\W " # working directory
- PS1+='`erco=$?; [ $erco == 0 ] && echo -n ":)" || echo -n '"\"\[$red\]:(\[$reset\] $\""'?=$erco` '
- PS1+="\$(prompt_git \"$gitStyle\")" # git repository details
- #PS1+="\n"
- PS1+="\[$charStyle\]\$ \[$reset\]" # $ (and reset color)
-
- export PS1
-}
-
-set_prompts
-unset set_prompts
fi
if test -n "$BASH_VERSION"; then
- # display the user, host and current working directory
- # in the terminal title
- case "$TERM" in
- *rxvt*|screen*|*term*|vt100)
- OPS1="\[\033]0;${debian_chroot:+($debian_chroot)}\u@\h:\w\007\]"
- case "$TERM" in
- screen*)
- OPS1=${OPS1}"\[\033k${debian_chroot:+($debian_chroot)}\u@\h:\w\033\\\\\]" # Set screen/tmux caption
- ;;
- esac
- ;;
-
- *)
- OPS1=""
- ;;
- esac
+ . "$ENV"
if [ -r "$HOME"/admin/prog/bash_prompt ]; then
. "$HOME"/admin/prog/bash_prompt
- OPS1=${OPS1}"${debian_chroot:+($debian_chroot)}\u@\${HOSTNAME::5}:\`short_curdir\` \\$"
+ set_prompts
+ unset set_prompts
else
- OPS1=${OPS1}"${debian_chroot:+($debian_chroot)}\u@\h:\W \\$"
+ OPS1="${debian_chroot:+($debian_chroot)}\u@\h:\W \\$"
fi
- . "$ENV"
else
OPS1="${debian_chroot:+($debian_chroot)}`/usr/bin/whoami`@`/bin/hostname -s` >"
+cgmem_which_prompt() {
+ local _cgmem_which
+ _cgmem_which="`cgmem_which 2>/dev/null`"
+ if [ -n "$_cgmem_which" ]; then
+ echo "[$_cgmem_which] "
+ fi
+}
+
short_curdir() {
if [ "$PWD" = / ]; then
echo /
fi
echo "${_short_curdir}"
}
+
+# bash_prompt; adapted from
+# https://github.com/necolas/dotfiles/blob/master/shell/bash_prompt and
+# http://vitus-wagner.livejournal.com/1176589.html?thread=40146189#t40146189
+
+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; 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 [ -n "$(git ls-files --modified)" ]; 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" "$branchName$s "
+ fi
+}
+
+set_prompts() {
+ OPS1=''
+ # display the user, host and current working directory
+ # in the terminal title
+ case "$TERM" in
+ *rxvt*|screen*|*term*|vt100)
+ OPS1+="\[\033]0;${debian_chroot:+($debian_chroot)}\u@\h:\w\007\]"
+ case "$TERM" in
+ screen*)
+ OPS1+="\[\033k${debian_chroot:+($debian_chroot)}"
+ OPS1+="\u@\h:\w\033\\\\\]" # Set screen/tmux caption
+ ;;
+ esac
+ ;;
+
+ *)
+ OPS1=""
+ ;;
+ esac
+
+ OPS1+="${debian_chroot:+($debian_chroot)}"
+ OPS1+="\`cgmem_which_prompt\`\u@\${HOSTNAME::5}:\`short_curdir\` "
+ OPS1+="\$(prompt_git)"
+ OPS1+="\\$"
+}
+
+#set_prompts
+#unset set_prompts