mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-18 03:40:08 +00:00
feat(CLI): add omz changelog
command
This commit is contained in:
parent
eeab4e5186
commit
7712da89ee
1 changed files with 66 additions and 41 deletions
61
lib/cli.zsh
61
lib/cli.zsh
|
@ -22,10 +22,11 @@ function omz {
|
||||||
function _omz {
|
function _omz {
|
||||||
local -a cmds subcmds
|
local -a cmds subcmds
|
||||||
cmds=(
|
cmds=(
|
||||||
|
'changelog:Print the changelog'
|
||||||
'help:Usage information'
|
'help:Usage information'
|
||||||
'plugin:Commands for Oh My Zsh plugins management'
|
'plugin:Manage plugins'
|
||||||
'pr:Commands for Oh My Zsh Pull Requests management'
|
'pr:Manage Oh My Zsh Pull Requests'
|
||||||
'theme:Commands for Oh My Zsh themes management'
|
'theme:Manage themes'
|
||||||
'update:Update Oh My Zsh'
|
'update:Update Oh My Zsh'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -33,6 +34,9 @@ function _omz {
|
||||||
_describe 'command' cmds
|
_describe 'command' cmds
|
||||||
elif (( CURRENT == 3 )); then
|
elif (( CURRENT == 3 )); then
|
||||||
case "$words[2]" in
|
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')
|
plugin) subcmds=('list:List plugins')
|
||||||
_describe 'command' subcmds ;;
|
_describe 'command' subcmds ;;
|
||||||
pr) subcmds=('test:Test a Pull Request' 'clean:Delete all Pull Request branches')
|
pr) subcmds=('test:Test a Pull Request' 'clean:Delete all Pull Request branches')
|
||||||
|
@ -52,21 +56,7 @@ function _omz {
|
||||||
|
|
||||||
compdef _omz omz
|
compdef _omz omz
|
||||||
|
|
||||||
|
## Utility functions
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
function _omz::confirm {
|
function _omz::confirm {
|
||||||
# If question supplied, ask it before reading the answer
|
# If question supplied, ask it before reading the answer
|
||||||
|
@ -111,6 +101,41 @@ function _omz::log {
|
||||||
esac >&2
|
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 {
|
function _omz::plugin {
|
||||||
(( $# > 0 && $+functions[_omz::plugin::$1] )) || {
|
(( $# > 0 && $+functions[_omz::plugin::$1] )) || {
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
|
Loading…
Reference in a new issue