]> gitweb.fluxo.info Git - shellprompt.git/commitdiff
Check for git completion availability
authorSilvio Rhatto <rhatto@riseup.net>
Mon, 26 Sep 2016 19:09:36 +0000 (16:09 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Mon, 26 Sep 2016 19:09:36 +0000 (16:09 -0300)
files/prompt

index e4d4ddf04aa51d4eadcb1e01a7661372a41e79d1..e580dedbf175d62bfa28548e36227459185dff76 100755 (executable)
@@ -5,33 +5,42 @@
 #
 
 command_prompt() {
+  # Last command exit status
   exit_status="$?"
-  # colors
+
+  # 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 with git completion
-  PS1="${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$(__git_ps1 " (%s)")${COLOR_NONE} \\$ "
+  # 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} "
 }
 
@@ -40,4 +49,5 @@ 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"