Initial commit - New Prompt

This commit is contained in:
Cyrille L 2022-03-14 13:49:23 +01:00
commit 56dfeda5e7
3 changed files with 127 additions and 0 deletions

28
README.md Normal file
View File

@ -0,0 +1,28 @@
# Bash Tools
Some Tools and convenient scripts to make using Console Life Better.
These tools in this repo are made for global use. Folders Structure is
kept to know where they must be copied in your system.
# How to install
You will need sudo, as scripts are intended to be global
```
# Get scripts
git clone https://git.a-lec.org/echolib/bash-tools.git
# Copy scripts (example) in the global profile folder
sudo cp ~/bash_tools/etc/profile.d/* /etc/profile.d/
```
As bash scripts, you will have to manually edit /etc/bash.bashrc and
add - according to your needs - a load script line
```
# Change Prompt with this one
[[ -f /etc/profile.d/prompt.sh ]] && . /etc/profile.d/prompt.sh
```
# ToDo ?
There will be a lot more to come soon. Maybe then, i will create a setup
to help you install what you need.

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

99
etc/profile.d/prompt.sh Normal file
View File

@ -0,0 +1,99 @@
#!/bin/bash
_ps1__refresh_history() {
history -n
history -w
history -c
history -r
tac "$HISTFILE" \
| awk '!x[$0]++' \
> /tmp/refreshprompt \
&& tac /tmp/refreshprompt \
> "$HISTFILE"
rm /tmp/refreshprompt
}
# Adding new blank line for readability
_ps1__pre_prompt_blankline() {
IFS=';' read -sdR -p $'\E[6n' ROW COL
if ! [[ `echo "${ROW#*[}"` == 1 ]];then
if [[ $_ps1_verylight ]];then
_ps1_Hline=""
else
if [[ $_ps1_color ]];then
_ps1_Hline=`echo;printf "\e[2m🭻\e[0m%.0b" {1..26}`
else
_ps1_Hline=`echo;printf '🭻%.0b' {1..26}`
fi
fi
printf "%b\n" "${_ps1_Hline}"
fi
}
# Preparing infos
_ps1__pre_prompt_set() {
_ps1_user="$USER"
_ps1_host="$HOSTNAME"
_ps1_file=`\
/bin/ls -1Ap \
| /bin/grep -v / \
| /usr/bin/wc -l \
| /bin/sed 's: ::g'`
_ps1_dirs=`\
/bin/ls -1Ap \
| /bin/grep / \
| /usr/bin/wc -l \
| /bin/sed 's: ::g'`
_ps1_size=`\
/bin/ls -lah \
| /bin/grep -m 1 total \
| /bin/sed 's/total //'`
_ps1_time=`date +%H:%M`
_ps1_hist=$(( `cat $HISTFILE | wc -l` + 1 ))
_ps1_h=$PWD
[[ $_ps1_h/ = "$HOME"/* ]] \
&& _ps1_h=\~${_ps1_h#$HOME}
_ps1__pre_prompt_blankline
}
# 1. echolib Colored
_ps1__prompt_echolib() {
local _ps1_Exit="$?"
[[ ${_ps1_Exit} == 0 ]] \
&& _ps1_Exit=`echo -e "\e[32m${_ps1_Exit}\e[0m"` \
|| _ps1_Exit=`echo -e "\e[31m${_ps1_Exit}\e[0m"`
_ps1__refresh_history
_ps1_color=true
_ps1__pre_prompt_set
unset _ps1_color
# Line 1
printf "%b %b %b %b\n" \
" $_ps1_Exit" \
"$_ps1_time" \
"${C_Grey}!$_ps1_hist${NC}" \
"${C_Green}$_ps1_user${NC}${C_Grey}@${NC}$_ps1_host"
# Line 2
printf "%b %b %b %b %b\n" \
" ${C_Grey}f:${NC}${C_Cyan}$_ps1_file${NC}" \
"${C_Grey}D:${NC}${C_Yellow}$_ps1_dirs${NC}" \
"${C_Grey}S=${NC}$_ps1_size" \
"${C_Grey}>${NC}" \
"${C_Yellow}$_ps1_h${NC}"
# Line 3
PS1='$ '
}
shopt -s histappend
export HISTCONTROL=ignoreboth:erasedups
PROMPT_COMMAND=_ps1__prompt_echolib
export PS1=$PROMPT_COMMAND