2020-12-23 04:00:50 -08:00
|
|
|
export POSH_THEME=::CONFIG::
|
|
|
|
|
|
|
|
function omp_preexec() {
|
|
|
|
omp_start_time=$(::OMP:: --millis)
|
|
|
|
}
|
|
|
|
|
|
|
|
function omp_precmd() {
|
2021-04-12 01:58:03 -07:00
|
|
|
stack_count=${#dirstack[@]}
|
2020-12-31 02:31:12 -08:00
|
|
|
omp_last_error=$?
|
2020-12-23 04:00:50 -08:00
|
|
|
omp_elapsed=-1
|
|
|
|
if [ $omp_start_time ]; then
|
|
|
|
omp_now=$(::OMP:: --millis)
|
|
|
|
omp_elapsed=$(($omp_now-$omp_start_time))
|
|
|
|
fi
|
2021-04-12 01:58:03 -07:00
|
|
|
eval "$(::OMP:: --config $POSH_THEME --error $omp_last_error --execution-time $omp_elapsed --stack-count $stack_count --eval --shell zsh)"
|
2020-12-23 04:00:50 -08:00
|
|
|
unset omp_start_time
|
|
|
|
unset omp_now
|
|
|
|
unset omp_elapsed
|
2020-12-31 02:31:12 -08:00
|
|
|
unset omp_last_error
|
2020-12-23 04:00:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
function install_omp_hooks() {
|
|
|
|
for s in "${preexec_functions[@]}"; do
|
|
|
|
if [ "$s" = "omp_preexec" ]; then
|
|
|
|
return
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
preexec_functions+=(omp_preexec)
|
|
|
|
|
|
|
|
for s in "${precmd_functions[@]}"; do
|
|
|
|
if [ "$s" = "omp_precmd" ]; then
|
|
|
|
return
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
precmd_functions+=(omp_precmd)
|
|
|
|
}
|
|
|
|
|
|
|
|
if [ "$TERM" != "linux" ]; then
|
|
|
|
install_omp_hooks
|
|
|
|
fi
|
2021-03-20 11:32:15 -07:00
|
|
|
|
|
|
|
function export_poshconfig() {
|
|
|
|
[ $# -eq 0 ] && { echo "Usage: $0 \"filename\""; return; }
|
|
|
|
format=$2
|
|
|
|
if [ -z "$format" ]; then
|
|
|
|
format="json"
|
|
|
|
fi
|
|
|
|
::OMP:: --config $POSH_THEME --print-config --config-format $format > $1
|
|
|
|
}
|