Bash: cleaner terminal titles + some file cleaning.
This commit is contained in:
		@@ -22,14 +22,13 @@ if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
 | 
				
			|||||||
	color_error="$(/usr/bin/tput setab 1)$(/usr/bin/tput setaf 7)"
 | 
						color_error="$(/usr/bin/tput setab 1)$(/usr/bin/tput setaf 7)"
 | 
				
			||||||
	color_error_off="$(/usr/bin/tput sgr0)"
 | 
						color_error_off="$(/usr/bin/tput sgr0)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# set user color
 | 
						# Set user color
 | 
				
			||||||
	case `id -u` in
 | 
						case `id -u` in
 | 
				
			||||||
		0) color_user=$color_red ;;
 | 
							0) color_user=$color_red ;;
 | 
				
			||||||
		*) color_user=$color_green ;;
 | 
							*) color_user=$color_green ;;
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
# Some kind of optimization - check if git installed only on config load
 | 
					# Some kind of optimization - check if git installed only on config load
 | 
				
			||||||
PS1_GIT_BIN=$(which git 2>/dev/null)
 | 
					PS1_GIT_BIN=$(which git 2>/dev/null)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -48,21 +47,18 @@ function prompt_command {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	# Parse git status and get git variables
 | 
						# Parse git status and get git variables
 | 
				
			||||||
	if [[ ! -z "$PS1_GIT_BIN" ]]; then
 | 
						if [[ ! -z "$PS1_GIT_BIN" ]]; then
 | 
				
			||||||
		# check we are in git repo
 | 
							# Check if we are in git repo
 | 
				
			||||||
		local CUR_DIR="$PWD"
 | 
							local CUR_DIR="$PWD"
 | 
				
			||||||
		while [[ ! -d "${CUR_DIR}/.git" ]] && [[ ! "${CUR_DIR}" == "/" ]] && [[ ! "${CUR_DIR}" == "~" ]] && [[ ! "${CUR_DIR}" == "" ]]; do CUR_DIR="${CUR_DIR%/*}"; done
 | 
							while [[ ! -d "${CUR_DIR}/.git" ]] && [[ ! "${CUR_DIR}" == "/" ]] && [[ ! "${CUR_DIR}" == "~" ]] && [[ ! "${CUR_DIR}" == "" ]]; do CUR_DIR="${CUR_DIR%/*}"; done
 | 
				
			||||||
		if [[ -d "${CUR_DIR}/.git" ]]; then
 | 
							if [[ -d "${CUR_DIR}/.git" ]]; then
 | 
				
			||||||
			# 'git repo for dotfiles' fix: show git status only in home dir and other git repos
 | 
								# Get git branch
 | 
				
			||||||
			if [[ "${CUR_DIR}" != "${HOME}" ]] || [[ "${PWD}" == "${HOME}" ]]; then
 | 
								GIT_BRANCH="$($PS1_GIT_BIN symbolic-ref HEAD 2>/dev/null)"
 | 
				
			||||||
				# get git branch
 | 
								if [[ ! -z "$GIT_BRANCH" ]]; then
 | 
				
			||||||
				GIT_BRANCH="$($PS1_GIT_BIN symbolic-ref HEAD 2>/dev/null)"
 | 
									GIT_BRANCH="${GIT_BRANCH#refs/heads/}"
 | 
				
			||||||
				if [[ ! -z "$GIT_BRANCH" ]]; then
 | 
					 | 
				
			||||||
					GIT_BRANCH="${GIT_BRANCH#refs/heads/}"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
					# get git status
 | 
									# Get git status
 | 
				
			||||||
					local GIT_STATUS="$($PS1_GIT_BIN status --porcelain 2>/dev/null)"
 | 
									local GIT_STATUS="$($PS1_GIT_BIN status --porcelain 2>/dev/null)"
 | 
				
			||||||
					[[ -n "$GIT_STATUS" ]] && GIT_DIRTY=1
 | 
									[[ -n "$GIT_STATUS" ]] && GIT_DIRTY=1
 | 
				
			||||||
				fi
 | 
					 | 
				
			||||||
			fi
 | 
								fi
 | 
				
			||||||
		fi
 | 
							fi
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
@@ -74,12 +70,12 @@ function prompt_command {
 | 
				
			|||||||
	local PS1_length=$((${#USER}+${#HOSTNAME}+${#PWDNAME}+${#PS1_GIT}+3))
 | 
						local PS1_length=$((${#USER}+${#HOSTNAME}+${#PWDNAME}+${#PS1_GIT}+3))
 | 
				
			||||||
	local FILL=
 | 
						local FILL=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# Of length is greater, than terminal width
 | 
						# If length is greater, than terminal width
 | 
				
			||||||
	if [[ $PS1_length -gt $COLUMNS ]]; then
 | 
						if [[ $PS1_length -gt $COLUMNS ]]; then
 | 
				
			||||||
		# strip working directory name
 | 
							# Strip working directory name
 | 
				
			||||||
		PWDNAME="...${PWDNAME:$(($PS1_length-$COLUMNS+3))}"
 | 
							PWDNAME="...${PWDNAME:$(($PS1_length-$COLUMNS+3))}"
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		# else calculate fillsize
 | 
							# Else calculate fillsize
 | 
				
			||||||
		local fillsize=$(($COLUMNS-$PS1_length))
 | 
							local fillsize=$(($COLUMNS-$PS1_length))
 | 
				
			||||||
		FILL="$color_gray"
 | 
							FILL="$color_gray"
 | 
				
			||||||
		while [[ $fillsize -gt 0 ]]; do FILL="${FILL}─"; fillsize=$(($fillsize-1)); done
 | 
							while [[ $fillsize -gt 0 ]]; do FILL="${FILL}─"; fillsize=$(($fillsize-1)); done
 | 
				
			||||||
@@ -97,22 +93,17 @@ function prompt_command {
 | 
				
			|||||||
		fi
 | 
							fi
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# set new color prompt
 | 
						# Set new color prompt
 | 
				
			||||||
	PS1="${color_user}${USER}${color_off}@${color_yellow}${HOSTNAME}${color_off}:${color_white}${PWDNAME}${color_off}${PS1_GIT} ${FILL}\n→ "
 | 
						PS1="${color_user}${USER}${color_off}@${color_yellow}${HOSTNAME}${color_off}:${color_white}${PWDNAME}${color_off}${PS1_GIT} ${FILL}\n→ "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# get cursor position and add new line if we're not in first column
 | 
						# Get cursor position and add new line if we're not in first column
 | 
				
			||||||
	# cool'n'dirty trick (http://stackoverflow.com/a/2575525/1164595)
 | 
					 | 
				
			||||||
	# XXX FIXME: this hack broke ssh =(
 | 
					 | 
				
			||||||
	#	exec < /dev/tty
 | 
					 | 
				
			||||||
	#	local OLDSTTY=$(stty -g)
 | 
					 | 
				
			||||||
	#	stty raw -echo min 0
 | 
					 | 
				
			||||||
	#	echo -en "\033[6n" > /dev/tty && read -sdR CURPOS
 | 
					 | 
				
			||||||
	#	stty $OLDSTTY
 | 
					 | 
				
			||||||
	echo -en "\033[6n" && read -sdR CURPOS
 | 
						echo -en "\033[6n" && read -sdR CURPOS
 | 
				
			||||||
	[[ "${CURPOS##*;}" -gt 1 ]] && echo "${color_error}●${color_error_off}"
 | 
						[[ "${CURPOS##*;}" -gt 1 ]] && echo "${color_error}●${color_error_off}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# Set title
 | 
						# Terminal title
 | 
				
			||||||
	echo -ne "\033]0;${USER}@${HOSTNAME}:${PWDNAME}"; echo -ne "\007"
 | 
						TITLE=`basename ${PWDNAME}`
 | 
				
			||||||
 | 
						[ $SHLVL -gt 1 ] && TITLE="${TITLE} — ${HOSTNAME}"
 | 
				
			||||||
 | 
						echo -ne "\033]0;${TITLE}"; echo -ne "\007"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Set prompt command (title update and color prompt)
 | 
					# Set prompt command (title update and color prompt)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user