]> gitweb.fluxo.info Git - shellprompt.git/commitdiff
Turn into a puppet module
authorSilvio Rhatto <rhatto@riseup.net>
Thu, 25 Feb 2016 18:07:27 +0000 (15:07 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Thu, 25 Feb 2016 18:07:27 +0000 (15:07 -0300)
TODO.md
files/bash.bashrc [new file with mode: 0644]
files/prompt [new file with mode: 0755]
manifests/init.pp [new file with mode: 0644]
prompt [changed from file to symlink]

diff --git a/TODO.md b/TODO.md
index 8ab655d36fa3eef112b989755ec94ea48510f2d9..fc45680d6460c9c9252fbdca47fd3de2ba4fe414 100644 (file)
--- a/TODO.md
+++ b/TODO.md
@@ -1,4 +1,4 @@
 TODO
 ====
 
-* Nothing here? :P
+* Rename project to 'shellprompt'.
diff --git a/files/bash.bashrc b/files/bash.bashrc
new file mode 100644 (file)
index 0000000..27686d6
--- /dev/null
@@ -0,0 +1,58 @@
+# System-wide .bashrc file for interactive bash(1) shells.
+
+# To enable the settings / commands in this file for login shells as well,
+# this file has to be sourced in /etc/profile.
+
+# If not running interactively, don't do anything
+[ -z "$PS1" ] && return
+
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS.
+shopt -s checkwinsize
+
+# set variable identifying the chroot you work in (used in the prompt below)
+if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
+    debian_chroot=$(cat /etc/debian_chroot)
+fi
+
+# set a fancy prompt (non-color, overwrite the one in /etc/profile)
+#PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+
+# set a fancy prompt
+. /etc/profile.d/prompt.sh
+
+# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
+# If this is an xterm set the title to user@host:dir
+#case "$TERM" in
+#xterm*|rxvt*)
+#    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
+#    ;;
+#*)
+#    ;;
+#esac
+
+# enable bash completion in interactive shells
+if ! shopt -oq posix; then
+  if [ -f /usr/share/bash-completion/bash_completion ]; then
+    . /usr/share/bash-completion/bash_completion
+  elif [ -f /etc/bash_completion ]; then
+    . /etc/bash_completion
+  fi
+fi
+
+# if the command-not-found package is installed, use it
+if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
+       function command_not_found_handle {
+               # check because c-n-f could've been removed in the meantime
+                if [ -x /usr/lib/command-not-found ]; then
+                  /usr/lib/command-not-found -- "$1"
+                   return $?
+                elif [ -x /usr/share/command-not-found/command-not-found ]; then
+                  /usr/share/command-not-found/command-not-found -- "$1"
+                   return $?
+               else
+                  printf "%s: command not found\n" "$1" >&2
+                  return 127
+               fi
+       }
+fi
diff --git a/files/prompt b/files/prompt
new file mode 100755 (executable)
index 0000000..e4d4ddf
--- /dev/null
@@ -0,0 +1,43 @@
+#!/bin/bash
+#
+# Fancy bash prompt.
+# See http://www.debian-administration.org/article/Fancy_Bash_Prompts
+#
+
+command_prompt() {
+  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\]"
+
+  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} \\$ "
+  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
+
+PROMPT_COMMAND="command_prompt"
diff --git a/manifests/init.pp b/manifests/init.pp
new file mode 100644 (file)
index 0000000..ed293d3
--- /dev/null
@@ -0,0 +1,19 @@
+class shellprompt {
+  file { "/etc/profile.d/prompt.sh":
+    source  => "puppet:///modules/shellprompt/prompt",
+    owner   => "root",
+    group   => "root",
+    mode    => 0644,
+    ensure  => present,
+  }
+
+  # Ideally we should not manage this file, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=675008
+  file { "/etc/bash.bashrc":
+    source  => "puppet:///modules/shellprompt/bash.bashrc",
+    owner   => "root",
+    group   => "root",
+    mode    => 0644,
+    ensure  => present,
+    require => File['/etc/profile.d/prompt.sh'],
+  }
+}
diff --git a/prompt b/prompt
deleted file mode 100755 (executable)
index ddfc5a28541e74c97949b9eeeb5952d57425d6b7..0000000000000000000000000000000000000000
--- a/prompt
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/bash
-#
-# Fancy bash prompt.
-# See http://www.debian-administration.org/article/Fancy_Bash_Prompts
-#
-
-command_prompt() {
-  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\]"
-
-  if [ "$exit_status" == "0" ]; then
-    status_color="${COLOR_GREEN}"
-  else
-    status_color="${COLOR_RED_BOLD}"
-  fi
-
-  # Without git completion
-  #PS1="(${status_color}${exit_status}${COLOR_NONE}) [${COLOR_RED}\D{%Y%m%d %H:%M:%S}${COLOR_NONE}] ${COLOR_CYAN}${debian_chroot:+($debian_chroot) }${COLOR_NONE}${COLOR_GREEN}\u@\h${COLOR_NONE}:${COLOR_CYAN}\w${COLOR_NONE} \\$ "
-
-  # Red green theme with git completion
-  #PS1="(${status_color}${exit_status}${COLOR_NONE}) [${COLOR_RED}\D{%Y%m%d %H:%M:%S}${COLOR_NONE}] ${COLOR_CYAN}${debian_chroot:+($debian_chroot) }${COLOR_NONE}${COLOR_GREEN}\u@\h${COLOR_NONE}:${COLOR_CYAN}\w$(__git_ps1 " (%s)")${COLOR_NONE} \\$ "
-  #PS2="${BOLD}>${OFF} "
-
-  # 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} \\$ "
-  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
-
-PROMPT_COMMAND="command_prompt"
diff --git a/prompt b/prompt
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..0bb503830b465e696c1300ca73921d3e1084ecaf
--- /dev/null
+++ b/prompt
@@ -0,0 +1 @@
+files/prompt
\ No newline at end of file