Merge branch 'dev'

This commit is contained in:
Andrea Mistrali 2020-02-14 14:19:04 +01:00
commit dc8cadae4d
1 changed files with 576 additions and 567 deletions

View File

@ -48,7 +48,7 @@ prompt_pure_check_cmd_exec_time() {
integer elapsed integer elapsed
(( elapsed = EPOCHSECONDS - ${prompt_pure_cmd_timestamp:-$EPOCHSECONDS} )) (( elapsed = EPOCHSECONDS - ${prompt_pure_cmd_timestamp:-$EPOCHSECONDS} ))
typeset -g prompt_pure_cmd_exec_time= typeset -g prompt_pure_cmd_exec_time=
(( elapsed > ${PURE_CMD_MAX_EXEC_TIME:-5} )) && { (( elapsed > ${PURE_CMD_MAX_EXEC_TIME:-20} )) && {
prompt_pure_human_time_to_var $elapsed "prompt_pure_cmd_exec_time" prompt_pure_human_time_to_var $elapsed "prompt_pure_cmd_exec_time"
} }
} }
@ -132,7 +132,7 @@ prompt_pure_set_aws() {
if [[ "$AWS_PROFILE" == "$_aws_prod_profile" ]]; then if [[ "$AWS_PROFILE" == "$_aws_prod_profile" ]]; then
prompt_pure_aws_prod=1 prompt_pure_aws_prod=1
fi fi
prompt_pure_aws="$AWS_PROFILE>" prompt_pure_aws="/$AWS_PROFILE/"
fi fi
} }
@ -147,6 +147,11 @@ prompt_pure_preprompt_render() {
# Initialize the preprompt array. # Initialize the preprompt array.
local -a preprompt_parts local -a preprompt_parts
[[ $UID -eq 0 ]] && preprompt_parts+='%F{$prompt_pure_colors[user:root]}'"⚡"
[[ -n $prompt_pure_state[username] ]] && preprompt_parts+='%F{$prompt_pure_colors[host]}'"|%m|"
# [[ ! -z $SSH_CONNECTION ]] && preprompt_parts+='%F{$prompt_pure_colors[host]}'"@%m"
prompt_pure_set_aws prompt_pure_set_aws
if [[ ! -z $prompt_pure_aws ]]; then if [[ ! -z $prompt_pure_aws ]]; then
if [[ $prompt_pure_aws_prod -eq 1 ]];then if [[ $prompt_pure_aws_prod -eq 1 ]];then
@ -173,8 +178,8 @@ prompt_pure_preprompt_render() {
preprompt_parts+=('%F{$prompt_pure_colors[git:arrow]}${prompt_pure_git_arrows}%f') preprompt_parts+=('%F{$prompt_pure_colors[git:arrow]}${prompt_pure_git_arrows}%f')
fi fi
# Username and machine, if applicable. # # Username and machine, if applicable.
[[ -n $prompt_pure_state[username] ]] && preprompt_parts+=($prompt_pure_state[username]) # [[ -n $prompt_pure_state[username] ]] && preprompt_parts+=($prompt_pure_state[username])
# Execution time. # Execution time.
[[ -n $prompt_pure_cmd_exec_time ]] && preprompt_parts+=('%F{$prompt_pure_colors[execution_time]}${prompt_pure_cmd_exec_time}%f') [[ -n $prompt_pure_cmd_exec_time ]] && preprompt_parts+=('%F{$prompt_pure_colors[execution_time]}${prompt_pure_cmd_exec_time}%f')
@ -622,6 +627,7 @@ prompt_pure_state_setup() {
# Check SSH_CONNECTION and the current state. # Check SSH_CONNECTION and the current state.
local ssh_connection=${SSH_CONNECTION:-$PROMPT_PURE_SSH_CONNECTION} local ssh_connection=${SSH_CONNECTION:-$PROMPT_PURE_SSH_CONNECTION}
local username hostname local username hostname
if [[ -z $ssh_connection ]] && (( $+commands[who] )); then if [[ -z $ssh_connection ]] && (( $+commands[who] )); then
# When changing user on a remote system, the $SSH_CONNECTION # When changing user on a remote system, the $SSH_CONNECTION
# environment variable can be lost. Attempt detection via `who`. # environment variable can be lost. Attempt detection via `who`.
@ -658,8 +664,8 @@ prompt_pure_state_setup() {
# Show `username@host` if logged in through SSH. # Show `username@host` if logged in through SSH.
[[ -n $ssh_connection ]] && username='%F{$prompt_pure_colors[user]}%n%f'"$hostname" [[ -n $ssh_connection ]] && username='%F{$prompt_pure_colors[user]}%n%f'"$hostname"
# Show `username@host` if root, with username in default color. # # Show `username@host` if root, with username in default color.
[[ $UID -eq 0 ]] && username='%F{$prompt_pure_colors[user:root]}%n%f'"$hostname" # [[ $UID -eq 0 ]] && username='%F{$prompt_pure_colors[user:root]}%n%f'"$hostname"
typeset -gA prompt_pure_state typeset -gA prompt_pure_state
prompt_pure_state[version]="1.11.0" prompt_pure_state[version]="1.11.0"
@ -669,53 +675,6 @@ prompt_pure_state_setup() {
) )
} }
prompt_pure_system_report() {
setopt localoptions noshwordsplit
print - "- Zsh: $($SHELL --version) ($SHELL)"
print -n - "- Operating system: "
case "$(uname -s)" in
Darwin) print "$(sw_vers -productName) $(sw_vers -productVersion) ($(sw_vers -buildVersion))";;
*) print "$(uname -s) ($(uname -v))";;
esac
print - "- Terminal program: ${TERM_PROGRAM:-unknown} (${TERM_PROGRAM_VERSION:-unknown})"
print -n - "- Tmux: "
[[ -n $TMUX ]] && print "yes" || print "no"
local git_version
git_version=($(git --version)) # Remove newlines, if hub is present.
print - "- Git: $git_version"
print - "- Pure state:"
for k v in "${(@kv)prompt_pure_state}"; do
print - " - $k: \`${(q)v}\`"
done
print - "- PROMPT: \`$(typeset -p PROMPT)\`"
print - "- Colors: \`$(typeset -p prompt_pure_colors)\`"
print - "- Virtualenv: \`$(typeset -p VIRTUAL_ENV_DISABLE_PROMPT)\`"
print - "- Conda: \`$(typeset -p CONDA_CHANGEPS1)\`"
local ohmyzsh=0
typeset -la frameworks
(( $+ANTIBODY_HOME )) && frameworks+=("Antibody")
(( $+ADOTDIR )) && frameworks+=("Antigen")
(( $+ANTIGEN_HS_HOME )) && frameworks+=("Antigen-hs")
(( $+functions[upgrade_oh_my_zsh] )) && {
ohmyzsh=1
frameworks+=("Oh My Zsh")
}
(( $+ZPREZTODIR )) && frameworks+=("Prezto")
(( $+ZPLUG_ROOT )) && frameworks+=("Zplug")
(( $+ZPLGM )) && frameworks+=("Zplugin")
(( $#frameworks == 0 )) && frameworks+=("None")
print - "- Detected frameworks: ${(j:, :)frameworks}"
if (( ohmyzsh )); then
print - " - Oh My Zsh:"
print - " - Plugins: ${(j:, :)plugins}"
fi
}
prompt_pure_setup() { prompt_pure_setup() {
# Prevent percentage showing up if output doesn't end with a newline. # Prevent percentage showing up if output doesn't end with a newline.
@ -750,22 +709,22 @@ prompt_pure_setup() {
prompt_pure_colors_default=( prompt_pure_colors_default=(
execution_time yellow execution_time yellow
git:arrow cyan git:arrow cyan
git:branch 242 git:branch 246
git:branch:cached red git:branch:cached red
git:action 242 git:action 242
git:dirty 218 git:dirty red
host 242 host 015
path blue path blue
prompt:error red prompt:error red
prompt:success magenta prompt:success magenta
prompt:continuation 242 prompt:continuation 242
user 242 user 242
user:root default user:root 190
virtualenv 242 virtualenv 242
aws yellow aws green
aws:prod red aws:prod red
) )
prompt_pure_colors=("${(@kv)prompt_pure_colors_default}") prompt_pure_colors=("${(@kv)prompt_pure_colors_default}")
add-zsh-hook precmd prompt_pure_precmd add-zsh-hook precmd prompt_pure_precmd
@ -827,3 +786,53 @@ prompt_pure_setup() {
} }
prompt_pure_setup "$@" prompt_pure_setup "$@"
# Utils
prompt_pure_system_report() {
setopt localoptions noshwordsplit
print - "- Zsh: $($SHELL --version) ($SHELL)"
print -n - "- Operating system: "
case "$(uname -s)" in
Darwin) print "$(sw_vers -productName) $(sw_vers -productVersion) ($(sw_vers -buildVersion))";;
*) print "$(uname -s) ($(uname -v))";;
esac
print - "- Terminal program: ${TERM_PROGRAM:-unknown} (${TERM_PROGRAM_VERSION:-unknown})"
print -n - "- Tmux: "
[[ -n $TMUX ]] && print "yes" || print "no"
local git_version
git_version=($(git --version)) # Remove newlines, if hub is present.
print - "- Git: $git_version"
print - "- Pure state:"
for k v in "${(@kv)prompt_pure_state}"; do
print - " - $k: \`${(q)v}\`"
done
print - "- PROMPT: \`$(typeset -p PROMPT)\`"
print - "- Colors: \`$(typeset -p prompt_pure_colors)\`"
print - "- Virtualenv: \`$(typeset -p VIRTUAL_ENV_DISABLE_PROMPT)\`"
print - "- Conda: \`$(typeset -p CONDA_CHANGEPS1)\`"
local ohmyzsh=0
typeset -la frameworks
(( $+ANTIBODY_HOME )) && frameworks+=("Antibody")
(( $+ADOTDIR )) && frameworks+=("Antigen")
(( $+ANTIGEN_HS_HOME )) && frameworks+=("Antigen-hs")
(( $+functions[upgrade_oh_my_zsh] )) && {
ohmyzsh=1
frameworks+=("Oh My Zsh")
}
(( $+ZPREZTODIR )) && frameworks+=("Prezto")
(( $+ZPLUG_ROOT )) && frameworks+=("Zplug")
(( $+ZPLGM )) && frameworks+=("Zplugin")
(( $#frameworks == 0 )) && frameworks+=("None")
print - "- Detected frameworks: ${(j:, :)frameworks}"
if (( ohmyzsh )); then
print - " - Oh My Zsh:"
print - " - Plugins: ${(j:, :)plugins}"
fi
}