aboutsummaryrefslogtreecommitdiff
path: root/files/prompt
blob: e580dedbf175d62bfa28548e36227459185dff76 (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
#!/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
  if type __git_ps1 &> /dev/null; then
    PS1="${base_prompt}$(__git_ps1 " (%s)")${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"