61 lines
1.8 KiB
Bash
Executable file
61 lines
1.8 KiB
Bash
Executable file
#! /bin/zsh
|
|
|
|
OVER_PROMPT_CFG="/etc/over/prompt.cfg"
|
|
|
|
if [[ -a "$OVER_PROMPT_CFG" ]]; then
|
|
source "$OVER_PROMPT_CFG"
|
|
fi
|
|
|
|
function tprompt_filter {
|
|
PRT="$1"
|
|
PRT="${PRT//|HOST|/%m}"
|
|
PRT="${PRT//|TTY|/%l}"
|
|
COLORLESS="$(print -P "%n@${PRT}"|sed 's/|[A-Z]*|//g')"
|
|
PRT="${PRT//|GREEN|/\%\{\e[1;32m%\}}"
|
|
PRT="${PRT//|RED|/\%\{\e[1;31m%\}}"
|
|
PRT="${PRT//|RFLASH|/\%\{\e[5;31m%\}}"
|
|
PRT="${PRT//|DARKGREEN|/\%\{\e[0;32m%\}}"
|
|
PRT="${PRT//|YELLOW|/\%\{\e[1;33m%\}}"
|
|
# PRT="${PRT//|BLUE|/\%\{\e[1;34m%\}}" # not used
|
|
PRT="${PRT//|CYAN|/\%\{\e[1;36m%\}}"
|
|
PRT="${PRT//|NONE|/\%\{\e[0m%\}}"
|
|
((OFFSET = ${COLUMNS} - ${#COLORLESS} + 9))
|
|
PRT="${PRT//|CWD|/%${OFFSET}<\\\\\\\\\\\\\\\<<%~%<<}" # 16x\ protoze to jde exponencialne pres 4 printy (kazdej jich polovinu sezere :)
|
|
print "$PRT"
|
|
}
|
|
|
|
function precmd {
|
|
local OVER_OPTS
|
|
set -A OVER_OPTS ${(s. .)OVER_PROMPT_OPTS}
|
|
|
|
RAW_DATA="$(/usr/share/over-prompt/data $OVER_OPTS[1] $OVER_OPTS[2] $OVER_OPTS[3])"
|
|
|
|
if [ -n "$RAW_DATA" ]; then
|
|
set -A DATA ${(s.:::.)RAW_DATA}
|
|
LOGIN_PART=${DATA[1]}
|
|
STATS_PART=${DATA[2]}
|
|
|
|
PS1a="%(!.|RED|.|GREEN|)%n|NONE|@$LOGIN_PART"
|
|
PS1b="%(?.|CYAN|.|RED|%?|NONE|:|RED|)%(!.#.$)|NONE| "
|
|
RPS1="[ |CYAN|%T|NONE| | $STATS_PART"
|
|
|
|
# vyrenderovat
|
|
PS1a="$(print "$(tprompt_filter "$PS1a")")"
|
|
PS1b="$(print "$(tprompt_filter "$PS1b")")"
|
|
RPS1="$(print "$(tprompt_filter "$RPS1")")"
|
|
|
|
PS1="$(print "$PS1a\n$PS1b")"
|
|
RPS1="$(print $RPS1)"
|
|
else
|
|
PS1a="%(!.|RED|.|GREEN|)%n|NONE|@|HOST|:|DARKGREEN||TTY| |CWD|"
|
|
PS1b="%(?.|CYAN|.|RED|%?|NONE|:|RED|)%(!.#.$)|NONE| "
|
|
RPS1="[ |CYAN|%T|NONE| | |RFLASH|data gathering error|NONE|"
|
|
PS1a="$(print "$(tprompt_filter "$PS1a")")"
|
|
PS1b="$(print "$(tprompt_filter "$PS1b")")"
|
|
|
|
PS1="$(print "${PS1a}\n${PS1b}")"
|
|
RPS1="$(print "$(tprompt_filter "$RPS1")")"
|
|
fi
|
|
}
|
|
|
|
unset OVER_PROMPT_CFG
|