summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/cli.zsh36
-rw-r--r--lib/functions.zsh2
-rw-r--r--lib/git.zsh4
-rw-r--r--lib/termsupport.zsh2
4 files changed, 36 insertions, 8 deletions
diff --git a/lib/cli.zsh b/lib/cli.zsh
index 92d447a8e..3346d3973 100644
--- a/lib/cli.zsh
+++ b/lib/cli.zsh
@@ -37,7 +37,7 @@ function _omz {
changelog) local -a refs
refs=("${(@f)$(command git for-each-ref --format="%(refname:short):%(subject)" refs/heads refs/tags)}")
_describe 'command' refs ;;
- plugin) subcmds=('list:List plugins')
+ plugin) subcmds=('info:Get plugin information' 'list:List plugins')
_describe 'command' subcmds ;;
pr) subcmds=('test:Test a Pull Request' 'clean:Delete all Pull Request branches')
_describe 'command' subcmds ;;
@@ -46,6 +46,8 @@ function _omz {
esac
elif (( CURRENT == 4 )); then
case "$words[2]::$words[3]" in
+ plugin::info) compadd "$ZSH"/plugins/*/README.md(.N:h:t) \
+ "$ZSH_CUSTOM"/plugins/*/README.md(.N:h:t) ;;
theme::use) compadd "$ZSH"/themes/*.zsh-theme(.N:t:r) \
"$ZSH_CUSTOM"/**/*.zsh-theme(.N:r:gs:"$ZSH_CUSTOM"/themes/:::gs:"$ZSH_CUSTOM"/:::) ;;
esac
@@ -143,6 +145,7 @@ Usage: omz plugin <command> [options]
Available commands:
+ info <plugin> Get information of a plugin
list List all available Oh My Zsh plugins
EOF
@@ -155,6 +158,29 @@ EOF
_omz::plugin::$command "$@"
}
+function _omz::plugin::info {
+ if [[ -z "$1" ]]; then
+ echo >&2 "Usage: omz plugin info <plugin>"
+ return 1
+ fi
+
+ local readme
+ for readme in "$ZSH_CUSTOM/plugins/$1/README.md" "$ZSH/plugins/$1/README.md"; do
+ if [[ -f "$readme" ]]; then
+ (( ${+commands[less]} )) && less "$readme" || cat "$readme"
+ return 0
+ fi
+ done
+
+ if [[ -d "$ZSH_CUSTOM/plugins/$1" || -d "$ZSH/plugins/$1" ]]; then
+ _omz::log error "the '$1' plugin doesn't have a README file"
+ else
+ _omz::log error "'$1' plugin not found"
+ fi
+
+ return 1
+}
+
function _omz::plugin::list {
local -a custom_plugins builtin_plugins
custom_plugins=("$ZSH_CUSTOM"/plugins/*(-/N:t))
@@ -333,8 +359,8 @@ EOF
function _omz::theme::list {
local -a custom_themes builtin_themes
- custom_themes=("$ZSH_CUSTOM"/**/*.zsh-theme(.N:r:gs:"$ZSH_CUSTOM"/themes/:::gs:"$ZSH_CUSTOM"/:::))
- builtin_themes=("$ZSH"/themes/*.zsh-theme(.N:t:r))
+ custom_themes=("$ZSH_CUSTOM"/**/*.zsh-theme(-.N:r:gs:"$ZSH_CUSTOM"/themes/:::gs:"$ZSH_CUSTOM"/:::))
+ builtin_themes=("$ZSH"/themes/*.zsh-theme(-.N:t:r))
# If the command is being piped, print all found line by line
if [[ ! -t 1 ]]; then
@@ -391,7 +417,9 @@ function _omz::update {
# Restart the zsh session
if [[ $ret -eq 0 && "$1" != --unattended ]]; then
+ # Old zsh versions don't have ZSH_ARGZERO
+ local zsh="${ZSH_ARGZERO:-${functrace[-1]%:*}}"
# Check whether to run a login shell
- [[ "$ZSH_ARGZERO" = -* ]] && exec -l "${ZSH_ARGZERO#-}" || exec "$ZSH_ARGZERO"
+ [[ "$zsh" = -* || -o login ]] && exec -l "${zsh#-}" || exec "$zsh"
fi
}
diff --git a/lib/functions.zsh b/lib/functions.zsh
index 7beb62ad9..c4340f16c 100644
--- a/lib/functions.zsh
+++ b/lib/functions.zsh
@@ -1,7 +1,7 @@
function zsh_stats() {
fc -l 1 \
| awk '{ CMD[$2]++; count++; } END { for (a in CMD) print CMD[a] " " CMD[a]*100/count "% " a }' \
- | grep -v "./" | sort -nr | head -n20 | column -c3 -s " " -t | nl
+ | grep -v "./" | sort -nr | head -20 | column -c3 -s " " -t | nl
}
function uninstall_oh_my_zsh() {
diff --git a/lib/git.zsh b/lib/git.zsh
index 157c85062..c9363274c 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -51,7 +51,7 @@ function parse_git_dirty() {
FLAGS+="--ignore-submodules=${GIT_STATUS_IGNORE_SUBMODULES:-dirty}"
;;
esac
- STATUS=$(__git_prompt_git status ${FLAGS} 2> /dev/null | tail -n1)
+ STATUS=$(__git_prompt_git status ${FLAGS} 2> /dev/null | tail -1)
fi
if [[ -n $STATUS ]]; then
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
@@ -170,7 +170,7 @@ function git_prompt_status() {
'\?\? ' 'UNTRACKED'
'A ' 'ADDED'
'M ' 'ADDED'
- 'MM ' 'ADDED'
+ 'MM ' 'MODIFIED'
' M ' 'MODIFIED'
'AM ' 'MODIFIED'
' T ' 'MODIFIED'
diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh
index 778f12bca..33451ef1f 100644
--- a/lib/termsupport.zsh
+++ b/lib/termsupport.zsh
@@ -10,7 +10,7 @@ function title {
emulate -L zsh
setopt prompt_subst
- [[ "$EMACS" == *term* ]] && return
+ [[ "$INSIDE_EMACS" == *term* ]] && return
# if $2 is unset use $1 as default
# if it is set and empty, leave it as is