From fe260899ba8f455c450ef0f76c4c5f4224bbcee3 Mon Sep 17 00:00:00 2001 From: DarkFeather Date: Mon, 9 Nov 2020 04:29:47 -0600 Subject: [PATCH] Updates for profile and bashrc; PS1 simplification --- EtcFiles/bashrc | 43 +++++++++++++++++++++---------------------- EtcFiles/profile | 39 +++++++++++++++++++++++++++++++++------ 2 files changed, 54 insertions(+), 28 deletions(-) diff --git a/EtcFiles/bashrc b/EtcFiles/bashrc index 39555c2..566ed99 100644 --- a/EtcFiles/bashrc +++ b/EtcFiles/bashrc @@ -6,21 +6,24 @@ [[ $- != *i* ]] && return ### Prompt ### -organization="$(hostname | rev | cut -f 2 -d '.' | rev)" -PS1='\[\033[00;31m\][ '"${organization^^}"'::\h/\[\033[01;32m\]\u \[\033[00;31m\]\\\\\\\\ ${SHELL} {\[\033[m\]$? \[\033[00;36m\]\D{%F-%R} \[\033[00;35m\]\w\[\033[00;31m\]\[\033[00;31m\]\[\033[00;33m\]$(git_prompt_var)\[\033[00;31m\]} ]\n|\[\033[m\]> ' +organization="$(echo $HOSTNAME | rev | cut -f 2 -d '.' | rev)" +PS1='\[\033[00;31m\][ \[\033[01;32m\]\u\[\033[00;31m\]@\H:${SHELL} {\[\033[m\]$? \[\033[00;36m\]\D{%F-%R} \[\033[00;35m\]\w\[\033[00;31m\]\[\033[00;31m\]\[\033[00;33m\]$(git_prompt_var)\[\033[00;31m\]} ]\n|\[\033[m\]> ' PS2='> ' PS3='> ' PS4='+ ' case ${TERM} in - xterm*|rxvt*|Eterm|aterm|kterm|gnome*) - PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;'${organization^^}'::%s \134\134 %s in %s\007" "${HOSTNAME%%.*}" "${USER}" "${PWD/#$HOME/\~}"' - - ;; - screen) - PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;'${organization^^}'::%s \134\134 %s in %s\007" "${HOSTNAME%%.*}" "${USER}" "${PWD/#$HOME/\~}"' + screen|xterm*|rxvt*|Eterm|aterm|kterm|gnome*) + PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;'${organization^^}'/${HOSTNAME%%.*}"' ;; esac +# Terminal settings +export TERM=xterm-256color +alias weechat="TERM=screen weechat" + +# Disable bracketed paste mode +printf "\e[?2004l" + ### MOTD ### [ -f /etc/bash.motd ] && cat /etc/bash.motd @@ -51,7 +54,7 @@ IFS=" " ### GIT ### -source /usr/share/git-core/contrib/completion/git-prompt.sh +source /usr/share/git/completion/git-prompt.sh function git_prompt_var() { ### If $PWD is a Git repo, add URL and branch to PS1 @@ -65,7 +68,7 @@ function git_prompt_var() { ### SSH ### # Tell shell about ssh-agent -- enable with 'systemctl enable ssh-agent@$USER.service' -export SSH_AGENT_PID="$(ps -fu "$USER" | grep -v grep | grep -m 1 ssh-agent | awk '{ print $2; }')" +export SSH_AGENT_PID="$(pgrep -fu "$USER" ssh-agent)" if [ -n "$SSH_AGENT_PID" ]; then export SSH_AUTH_SOCK="$(ls -ld /tmp/ssh-*/agent.* | grep -m 1 "$USER" | awk '{ print $9; }')" echo ssh-agent PID is $SSH_AGENT_PID @@ -75,6 +78,13 @@ if [ -n "$SSH_AUTH_SOCK" ] && [ `ssh-add -L | grep -c no\ identities` -eq 1 ]; t ssh-add -L fi +### GPG ### +export GPG_TTY=$(tty) + +### Ansible ### +export ANSIBLE_VAULT_PASSWORD_FILE=$HOME/password-store/${organization}.vault.password +export ANSIBLE_VAULT_FILE=$HOME/password-store/${organization}.vault + # ### User-directory .gitbare Support (Git) ### # if [ -d ~/.git ]; then # cd @@ -88,7 +98,7 @@ fi # fi # # Set up screen/tmux safety nest by default for remote sessions -if [ ! -z "$SSH_CLIENT" ]; then +if [ -n "$SSH_CLIENT" ]; then # Prefer tmux if [ -x "$(which tmux 2>/dev/null)" ] && [ -z "$TMUX" ]; then if [ `tmux list-sessions | grep created | wc -l` -eq 0 ]; then @@ -99,20 +109,9 @@ if [ ! -z "$SSH_CLIENT" ]; then tmux list-sessions fi alias tat="exec tmux a -d -t" - # Fallback on Screen - elif [ -x "$(which screen 2>/dev/null)" ] && [ "$TERM" != "screen" ]; then - if [ `screen -list | grep -c 'Detached'` -eq 1 ]; then - exec screen -r - elif [ `screen -list | grep -c 'No Sockets found in '` -eq 1 ] && [ "$TERM" != "screen" ]; then - exec /usr/bin/screen /bin/bash - else - screen -list - fi - alias sdr="screen -d -r" fi; ### XFCE4 ### elif [ `who -m | egrep "^$(whoami)" | awk '{ print $2; }' | egrep -c "^tty"` -eq 1 ] && [ -x /usr/sbin/startxfce4 ] && [ `pgrep -ac xinit` -eq 0 ] && [ `whoami` != 'root' ]; then exec startxfce4 fi - diff --git a/EtcFiles/profile b/EtcFiles/profile index 104de54..6ab65dd 100644 --- a/EtcFiles/profile +++ b/EtcFiles/profile @@ -3,9 +3,30 @@ #Set our umask umask 022 -# Set our default path -PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:~/bin" +# Append "$1" to $PATH when not already in. +# This function API is accessible to scripts in /etc/profile.d +append_path () { + case ":$PATH:" in + *:"$1":*) + ;; + *) + PATH="${PATH:+$PATH:}$1" + esac +} + +# Append our default paths +append_path '/usr/local/sbin' +append_path '/usr/local/bin' +append_path '/usr/sbin' +append_path '/usr/bin' +append_path '/sbin' +append_path '/bin' +append_path '~/bin' + +# Force PATH to be environment export PATH + +# Set IFS to be newline delimited IFS=" " export IFS @@ -18,8 +39,16 @@ if test -d /etc/profile.d/; then unset profile fi -# Source global bash config -if test "$PS1" && test "$BASH" && test -r /etc/bashrc; then +# Unload our profile API functions +unset -f append_path + +# Source global bash config, when interactive but not posix or sh mode +if test "$BASH" &&\ + test "$PS1" &&\ + test -z "$POSIXLY_CORRECT" &&\ + test "${0#-}" != sh &&\ + test -r /etc/bashrc +then . /etc/bashrc fi @@ -28,5 +57,3 @@ unset TERMCAP # Man is much better than us at figuring this out unset MANPATH - -