bashmsg: prompt support
This commit is contained in:
42
bashmsg.inc
42
bashmsg.inc
@@ -30,6 +30,38 @@ function _bashmsg.is_color_defined {
|
|||||||
PATH= command -v _bashmsg.${1} >/dev/null
|
PATH= command -v _bashmsg.${1} >/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# prompt_generic <ydefault/ndefault> <prefix> <name> <message>
|
||||||
|
function _bashmsg.prompt_generic {
|
||||||
|
local mode=$1
|
||||||
|
local pref=$2
|
||||||
|
local name=$3
|
||||||
|
local msg=$4
|
||||||
|
|
||||||
|
local msg_w_pref=$(printf '%s %s' "$(_bashmsg.dyncolor "_p_${name}" echo -n "${pref}")" "${msg}")
|
||||||
|
case "$mode" in
|
||||||
|
ydefault)
|
||||||
|
if [[ -n $ZSH_VERSION ]]; then
|
||||||
|
read -r "?${msg_w_pref} [Y/n] " CHOICE
|
||||||
|
else
|
||||||
|
read -r -p "${msg_w_pref} [Y/n] " CHOICE
|
||||||
|
fi
|
||||||
|
[[ -z $CHOICE || $CHOICE =~ ^[yY]$ ]]
|
||||||
|
;;
|
||||||
|
ndefault)
|
||||||
|
if [[ -n $ZSH_VERSION ]]; then
|
||||||
|
read -r "?${msg_w_pref} [y/N] " CHOICE
|
||||||
|
else
|
||||||
|
read -r -p "${msg_w_pref} [y/N] " CHOICE
|
||||||
|
fi
|
||||||
|
[[ $CHOICE =~ ^[yY]$ ]]
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
msg_error "Unknown prompt mode: ${mode}"
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
################# INITIALIZATION ################
|
################# INITIALIZATION ################
|
||||||
|
|
||||||
if [[ -z $_bashlib_bashcols ]]; then
|
if [[ -z $_bashlib_bashcols ]]; then
|
||||||
@@ -99,6 +131,16 @@ function bashmsg.def_type {
|
|||||||
eval "function msg_${1} { printf '%s %s\n' \"\$(_bashmsg.dyncolor ${1} echo -n \"${2}\")\" \"\${*}\" ; }"
|
eval "function msg_${1} { printf '%s %s\n' \"\$(_bashmsg.dyncolor ${1} echo -n \"${2}\")\" \"\${*}\" ; }"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# def_prompt_type <name> <prefix> <default color> [<ydefault/ndefault>]
|
||||||
|
function bashmsg.def_prompt_type {
|
||||||
|
declare -g _bashmsg_col__p_${1}=${3}
|
||||||
|
if [[ -z $4 ]]; then
|
||||||
|
eval "function prompt_${1} { _bashmsg.prompt_generic \"\${1}\" \"${2}\" \"${1}\" \"\${2}\" ; }"
|
||||||
|
else
|
||||||
|
eval "function prompt_${1} { _bashmsg.prompt_generic \"${4}\" \"${2}\" \"${1}\" \"\${1}\" ; }"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Default types
|
# Default types
|
||||||
bashmsg.def_type info '[info]' grey
|
bashmsg.def_type info '[info]' grey
|
||||||
bashmsg.def_type warn '[warn]' orange
|
bashmsg.def_type warn '[warn]' orange
|
||||||
|
|||||||
Reference in New Issue
Block a user