Skip to content

Instantly share code, notes, and snippets.

@phoenixweiss
Created July 31, 2022 19:36
Show Gist options
  • Save phoenixweiss/b29b97693d6fd40c5bde7c1957198776 to your computer and use it in GitHub Desktop.
Save phoenixweiss/b29b97693d6fd40c5bde7c1957198776 to your computer and use it in GitHub Desktop.
Нарядный профиль баша для повседневного использования
# Алиасы для удобства работы с бандлером
alias be='bundle exec'
alias bi='bundle install'
alias bl='bundle list'
alias bu='bundle update'
alias bp='bundle package'
# Список стилей и значений
declare -A style
style[black]="\e[30m"
style[black_bg]="\e[40m"
style[white]="\e[97m"
style[white_bg]="\e[107m"
style[red]="\e[31m"
style[red_bg]="\e[41m"
style[green]="\e[32m"
style[green_bg]="\e[42m"
style[yellow]="\e[33"
style[yellow_bg]="\e[43m"
style[blue]="\e[34m"
style[blue_bg]="\e[44m"
style[magenta]="\e[35m"
style[magenta_bg]="\e[45m"
style[cyan]="\e[36m"
style[cyan_bg]="\e[46m"
style[gray]="\e[90m"
style[gray_bg]="\e[100m"
style[lt_gray]="\e[37m"
style[lt_gray_bg]="\e[47m"
style[lt_red]="\e[91m"
style[lt_red_bg]="\e[101m"
style[lt_green]="\e[92m"
style[lt_green_bg]="\e[102m"
style[lt_yellow]="\e[93m"
style[lt_yellow_bg]="\e[103m"
style[lt_blue]="\e[94m"
style[lt_blue_bg]="\e[104m"
style[lt_magenta]="\e[95m"
style[lt_magenta_bg]="\e[105m"
style[lt_cyan]="\e[96m"
style[lt_cyan_bg]="\e[106m"
style[bold]="\e[1m"
style[faint]="\e[2m"
style[italic]="\e[3m"
style[underlined]="\e[4m"
style[reset_style]="\e[0m"
# Показать все стили
styles_all() {
for i in "${!style[@]}"
do
echo -e "${style[$i]} style: $i ${style[reset_style]}"
done
}
# Смайлики
declare -A smile
smile[happy]="^_^"
smile[angry]=">_<"
# Функция парсинга имени текущей ветки гита
parse_git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' ; }
# Добавляем смайлик для отражения результата выполнения предыдущей команды
reaction() {
if [ "$?" -eq "0" ]
then
SMILE="${style[lt_green]}${smile[happy]}${style[reset_style]}"
else
SMILE="${style[lt_red]}${smile[angry]}${style[reset_style]}"
fi
}
# Если юзер -- рут, тогда путь красный, иначе -- голубой
root_prompt() {
if [ $UID -eq 0 ]
then
USER_COLOR="${style[lt_red]}"
else
USER_COLOR="${style[lt_blue]}"
fi
}
# Собираем воедино
prompt_cmd() {
reaction
root_prompt
PS1="$USER_COLOR\w${style[reset_style]} ${style[lt_yellow]}${style[italic]}$(parse_git_branch)${style[reset_style]} $SMILE > "
}
PROMPT_COMMAND=prompt_cmd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment