42 lines
778 B
Text
42 lines
778 B
Text
|
#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
|
||
|
|