|
|
|
|
@ -20,53 +20,43 @@ function omz { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function _omz { |
|
|
|
|
local -a cmds subcmds |
|
|
|
|
cmds=( |
|
|
|
|
'help:Usage information' |
|
|
|
|
'plugin:Commands for Oh My Zsh plugins management' |
|
|
|
|
'pr:Commands for Oh My Zsh Pull Requests management' |
|
|
|
|
'theme:Commands for Oh My Zsh themes management' |
|
|
|
|
'update:Update Oh My Zsh' |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
if (( CURRENT == 2 )); then |
|
|
|
|
_describe 'command' cmds |
|
|
|
|
elif (( CURRENT == 3 )); then |
|
|
|
|
case "$words[2]" in |
|
|
|
|
plugin) subcmds=('list:List plugins') |
|
|
|
|
_describe 'command' subcmds ;; |
|
|
|
|
pr) subcmds=('test:Test a Pull Request' 'clean:Delete all Pull Request branches') |
|
|
|
|
_describe 'command' subcmds ;; |
|
|
|
|
theme) subcmds=('use:Load a theme' 'list:List themes') |
|
|
|
|
_describe 'command' subcmds ;; |
|
|
|
|
esac |
|
|
|
|
elif (( CURRENT == 4 )); then |
|
|
|
|
case "$words[2]::$words[3]" in |
|
|
|
|
theme::use) compadd "$ZSH"/themes/*.zsh-theme(.N:t:r) \ |
|
|
|
|
"$ZSH_CUSTOM"/**/*.zsh-theme(.N:r:gs:"$ZSH_CUSTOM"/themes/:::gs:"$ZSH_CUSTOM"/:::) ;; |
|
|
|
|
esac |
|
|
|
|
fi |
|
|
|
|
local -a cmds subcmds |
|
|
|
|
cmds=( |
|
|
|
|
'changelog:Print the changelog' |
|
|
|
|
'help:Usage information' |
|
|
|
|
'plugin:Manage plugins' |
|
|
|
|
'pr:Manage Oh My Zsh Pull Requests' |
|
|
|
|
'theme:Manage themes' |
|
|
|
|
'update:Update Oh My Zsh' |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
return 0 |
|
|
|
|
if (( CURRENT == 2 )); then |
|
|
|
|
_describe 'command' cmds |
|
|
|
|
elif (( CURRENT == 3 )); then |
|
|
|
|
case "$words[2]" in |
|
|
|
|
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') |
|
|
|
|
_describe 'command' subcmds ;; |
|
|
|
|
pr) subcmds=('test:Test a Pull Request' 'clean:Delete all Pull Request branches') |
|
|
|
|
_describe 'command' subcmds ;; |
|
|
|
|
theme) subcmds=('use:Load a theme' 'list:List themes') |
|
|
|
|
_describe 'command' subcmds ;; |
|
|
|
|
esac |
|
|
|
|
elif (( CURRENT == 4 )); then |
|
|
|
|
case "$words[2]::$words[3]" in |
|
|
|
|
theme::use) compadd "$ZSH"/themes/*.zsh-theme(.N:t:r) \ |
|
|
|
|
"$ZSH_CUSTOM"/**/*.zsh-theme(.N:r:gs:"$ZSH_CUSTOM"/themes/:::gs:"$ZSH_CUSTOM"/:::) ;; |
|
|
|
|
esac |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
return 0 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
compdef _omz omz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function _omz::help { |
|
|
|
|
cat <<EOF |
|
|
|
|
Usage: omz <command> [options] |
|
|
|
|
|
|
|
|
|
Available commands: |
|
|
|
|
|
|
|
|
|
help Print this help message |
|
|
|
|
plugin <command> Manage plugins |
|
|
|
|
pr <command> Manage Oh My Zsh Pull Requests |
|
|
|
|
theme <command> Manage themes |
|
|
|
|
update Update Oh My Zsh |
|
|
|
|
|
|
|
|
|
EOF |
|
|
|
|
} |
|
|
|
|
## Utility functions |
|
|
|
|
|
|
|
|
|
function _omz::confirm { |
|
|
|
|
# If question supplied, ask it before reading the answer |
|
|
|
|
@ -111,6 +101,41 @@ function _omz::log { |
|
|
|
|
esac >&2 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
## User-facing commands |
|
|
|
|
|
|
|
|
|
function _omz::help { |
|
|
|
|
cat <<EOF |
|
|
|
|
Usage: omz <command> [options] |
|
|
|
|
|
|
|
|
|
Available commands: |
|
|
|
|
|
|
|
|
|
help Print this help message |
|
|
|
|
changelog Print the changelog |
|
|
|
|
plugin <command> Manage plugins |
|
|
|
|
pr <command> Manage Oh My Zsh Pull Requests |
|
|
|
|
theme <command> Manage themes |
|
|
|
|
update Update Oh My Zsh |
|
|
|
|
|
|
|
|
|
EOF |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function _omz::changelog { |
|
|
|
|
local version=${1:-HEAD} format=${3:-"--text"} |
|
|
|
|
|
|
|
|
|
if ! command git -C "$ZSH" show-ref --verify refs/heads/$version &>/dev/null && \ |
|
|
|
|
! command git -C "$ZSH" show-ref --verify refs/tags/$version &>/dev/null && \ |
|
|
|
|
! command git -C "$ZSH" rev-parse --verify "${version}^{commit}" &>/dev/null; then |
|
|
|
|
cat <<EOF |
|
|
|
|
Usage: omz changelog [version] |
|
|
|
|
|
|
|
|
|
NOTE: <version> must be a valid branch, tag or commit. |
|
|
|
|
EOF |
|
|
|
|
return 1 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
"$ZSH/tools/changelog.sh" "$version" "${2:-}" "$format" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function _omz::plugin { |
|
|
|
|
(( $# > 0 && $+functions[_omz::plugin::$1] )) || { |
|
|
|
|
cat <<EOF |
|
|
|
|
|