aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2016-02-25 15:07:27 -0300
committerSilvio Rhatto <rhatto@riseup.net>2016-02-25 15:07:27 -0300
commitb180ac33227e9d7125bb04932fdbc9b851906c84 (patch)
tree1103fb4d623baa9263021546defc834380233e6c
parent117f06911b075efd409117a06074d1d33018da10 (diff)
downloadshellprompt-b180ac33227e9d7125bb04932fdbc9b851906c84.tar.gz
shellprompt-b180ac33227e9d7125bb04932fdbc9b851906c84.tar.bz2
Turn into a puppet module
-rw-r--r--TODO.md2
-rw-r--r--files/bash.bashrc58
-rwxr-xr-xfiles/prompt43
-rw-r--r--manifests/init.pp19
l---------[-rwxr-xr-x]prompt51
5 files changed, 122 insertions, 51 deletions
diff --git a/TODO.md b/TODO.md
index 8ab655d..fc45680 100644
--- 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
index 0000000..27686d6
--- /dev/null
+++ b/files/bash.bashrc
@@ -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
index 0000000..e4d4ddf
--- /dev/null
+++ b/files/prompt
@@ -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
index 0000000..ed293d3
--- /dev/null
+++ b/manifests/init.pp
@@ -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
index ddfc5a2..0bb5038 100755..120000
--- a/prompt
+++ b/prompt
@@ -1,50 +1 @@
-#!/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"
+files/prompt \ No newline at end of file