Add completion for Git submodule moving and removing
This commit is contained in:
parent
6cf368cf4d
commit
8b8a883718
41
modules/git/functions/_git-submodule-move
Normal file
41
modules/git/functions/_git-submodule-move
Normal file
@ -0,0 +1,41 @@
|
||||
#compdef git-submodule-move
|
||||
#autoload
|
||||
|
||||
#
|
||||
# Completes git-submodule-move.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
local state expl ret=1
|
||||
local -a submodules
|
||||
local submodule
|
||||
|
||||
_arguments -C -s -S \
|
||||
'1::args:->submodule' \
|
||||
'2::args:->directory' && ret=0
|
||||
|
||||
case "$state" in
|
||||
(submodule)
|
||||
while IFS=$'\n' read submodule; do
|
||||
submodules+=("$submodule")
|
||||
done < <(
|
||||
git config --file "$(git-root)/.gitmodules" --list \
|
||||
| grep '.path=' \
|
||||
| cut -d= -f2-
|
||||
)
|
||||
|
||||
_describe -t submodule 'submodules' submodules && ret=0
|
||||
;;
|
||||
(directory)
|
||||
_wanted directories expl 'directory' _path_files -/ || _message 'directory'
|
||||
;;
|
||||
esac
|
||||
|
||||
return $ret
|
||||
|
27
modules/git/functions/_git-submodule-remove
Normal file
27
modules/git/functions/_git-submodule-remove
Normal file
@ -0,0 +1,27 @@
|
||||
#compdef git-submodule-remove
|
||||
#autoload
|
||||
|
||||
#
|
||||
# Completes git-submodule-remove.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
local -a submodules
|
||||
local submodule
|
||||
|
||||
while IFS=$'\n' read submodule; do
|
||||
submodules+=("$submodule")
|
||||
done < <(
|
||||
git config --file "$(git-root)/.gitmodules" --list \
|
||||
| grep '.path=' \
|
||||
| cut -d= -f2-
|
||||
)
|
||||
|
||||
_describe -t submodule 'submodules' submodules && return 0
|
||||
|
Reference in New Issue
Block a user