aboutsummaryrefslogtreecommitdiff
path: root/files/prompt
blob: 02f0d83371b314bdcb36e168b333f15be3973090 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/bash
#
# Fancy bash prompt.
# See http://www.debian-administration.org/article/Fancy_Bash_Prompts
#

command_prompt() {
  # Last command exit status
  exit_status="$?"

  # Colors
  COLOR_RED="\[\033[31m\]"
  COLOR_GREEN="\[\033[32m\]"
  COLOR_YELLOW="\[\033[33m\]"
  COLOR_BLUE="\[\033[34m\]"
  COLOR_MAGENTA="\[\033[35m\]"
  COLOR_CYAN="\[\033[36m\]"
  COLOR_RED_BOLD="\[\033[31;1m\]"
  COLOR_GREEN_BOLD="\[\033[32;1m\]"
  COLOR_YELLOW_BOLD="\[\033[33;1m\]"
  COLOR_BLUE_BOLD="\[\033[34;1m\]"
  COLOR_MAGENTA_BOLD="\[\033[35;1m\]"
  COLOR_CYAN_BOLD="\[\033[36;1m\]"
  COLOR_NONE="\[\033[0m\]"
  BOLD="\[\033[1m\]"

  # Check status
  if [ "$exit_status" == "0" ]; then
    status_color="${COLOR_GREEN}"
  else
    status_color="${COLOR_RED_BOLD}"
  fi

  # Yellow blue theme
  local base_prompt="${status_color}${exit_status}${COLOR_NONE} ${COLOR_CYAN}\D{%Y%m%d %H:%M:%S}${COLOR_NONE} ${COLOR_CYAN}${debian_chroot:+($debian_chroot) }${COLOR_NONE}${COLOR_YELLOW}\u@\h${COLOR_NONE}:${COLOR_CYAN}\w"

  # Check if completion is available
  # See https://github.com/njhartwell/pw3nage
  #if type __git_ps1 &> /dev/null; then
  if [ -x "/usr/bin/git" ]; then
    #PS1="${base_prompt}$(__git_ps1 " (%s)")${COLOR_NONE} \\$ "
    branch="`/usr/bin/git branch 2> /dev/null | grep '^* ' | sed -e 's/\* //' -e 's/ $//'`"

    if [ ! -z "$branch" ]; then
      branch=" (${branch//[^a-z0-9\/]/-})"
    fi

    PS1="${base_prompt}$branch${COLOR_NONE} \\$ "
  else
    PS1="${base_prompt}${COLOR_NONE} \\$ "
  fi

  PS2="${BOLD}>${OFF} "
}

# Older systems doesn't source git completion by default
if ! type __git_ps1 &> /dev/null && [ -e "/etc/bash_completion.d/git" ]; then
  source /etc/bash_completion.d/git
fi

# Set the command prompt function
PROMPT_COMMAND="command_prompt"