powerlevel10k/internal/configure.zsh

46 lines
2.2 KiB
Bash
Raw Normal View History

2019-07-28 14:40:05 +00:00
typeset -gr __p9k_wizard_columns=70
typeset -gr __p9k_wizard_lines=28
2019-07-28 15:29:56 +00:00
typeset -gr __p9k_zd=${${ZDOTDIR:-$HOME}:A}
typeset -gr __p9k_zd_u=${${(q-)__p9k_zd}/#(#b)$HOME(|\/*)/'~'$match[1]}
2019-07-28 10:16:05 +00:00
typeset -gr __p9k_cfg_basename=.p10k.zsh
typeset -gr __p9k_cfg_path=$__p9k_zd/$__p9k_cfg_basename
typeset -gr __p9k_cfg_path_u=$__p9k_zd_u/$__p9k_cfg_basename
2019-07-28 15:29:56 +00:00
typeset -gr __p9k_zshrc=$__p9k_zd/.zshrc
typeset -gr __p9k_zshrc_u=$__p9k_zd_u/.zshrc
typeset -gr __p9k_root_dir_u=${${(q-)__p9k_root_dir}/#(#b)$HOME(|\/*)/'~'$match[1]}
2019-07-28 10:16:05 +00:00
function _p9k_can_configure() {
emulate -L zsh
setopt err_return
[[ $1 == '-q' ]] && local -i q=1 || local -i q=0
function $0_error() {
(( q )) || print -P "%1F[ERROR]%f %Bp9k_configure%b: $1" >&2
return 1
}
{
[[ -t 0 && -t 1 ]] || $0_error "no TTY"
[[ -o multibyte ]] || $0_error "multibyte option is not set"
[[ "${#$(print -P '\u276F' 2>/dev/null)}" == 1 ]] || $0_error "shell doesn't support unicode"
[[ -w $__p9k_zd ]] || $0_error "$__p9k_zd_u is not writable"
[[ ! -d $__p9k_cfg_path ]] || $0_error "$__p9k_cfg_path_u is a directory"
2019-07-28 15:29:56 +00:00
[[ ! -d $__p9k_zshrc ]] || $0_error "$__p9k_zshrc_u is a directory"
2019-07-28 10:16:05 +00:00
[[ ! -e $__p9k_cfg_path || -f $__p9k_cfg_path || -h $__p9k_cfg_path ]] ||
$0_error "$__p9k_cfg_path_u is a special file"
2019-07-28 15:29:56 +00:00
[[ -r $__p9k_root_dir/config/p10k-lean.zsh ]] ||
2019-07-28 10:19:51 +00:00
$0_error "cannot read $__p9k_root_dir_u/config/p10k-lean.zsh"
2019-07-28 15:29:56 +00:00
[[ -r $__p9k_root_dir/config/p10k-classic.zsh ]] ||
2019-07-28 10:19:51 +00:00
$0_error "cannot read $__p9k_root_dir_u/config/p10k-classic.zsh"
2019-07-28 15:29:56 +00:00
[[ ! -e $__p9k_zshrc || -f $__p9k_zshrc || -h $__p9k_zshrc ]] ||
$0_error "$__p9k_zshrc_u a special file"
[[ ! -e $__p9k_zshrc || -r $__p9k_zshrc ]] ||
$0_error "$__p9k_zshrc_u is not readable"
[[ ! -e $__p9k_zshrc || -w $__p9k_zshrc ]] ||
$0_error "$__p9k_zshrc_u is not writable"
(( LINES >= __p9k_wizard_lines && COLUMNS >= __p9k_wizard_columns )) ||
2019-07-28 14:40:05 +00:00
$0_error "terminal size too small"
2019-07-28 10:16:05 +00:00
} always {
unfunction $0_error
}
}