git-submodule: replace duplicated code with a module_list function

Several call sites in git-submodule.sh used the same idiom for getting
submodule information:

	git ls-files --stage -- "$@" | grep '^160000 '

This patch removes this duplication by introducing a module_list function.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
David Aguilar 2008-08-22 00:30:50 -07:00 committed by Junio C Hamano
parent 34ad1afa71
commit a7b3269c4b

View File

@ -53,6 +53,15 @@ resolve_relative_url ()
echo "$remoteurl/$url"
}
#
# Get submodule info for registered submodules
# $@ = path to limit submodule list
#
module_list()
{
git ls-files --stage -- "$@" | grep '^160000 '
}
#
# Map submodule path to submodule name
#
@ -206,7 +215,7 @@ cmd_add()
#
cmd_foreach()
{
git ls-files --stage | grep '^160000 ' |
module_list |
while read mode sha1 stage path
do
if test -e "$path"/.git
@ -246,7 +255,7 @@ cmd_init()
shift
done
git ls-files --stage -- "$@" | grep '^160000 ' |
module_list "$@" |
while read mode sha1 stage path
do
# Skip already registered paths
@ -304,7 +313,7 @@ cmd_update()
esac
done
git ls-files --stage -- "$@" | grep '^160000 ' |
module_list "$@" |
while read mode sha1 stage path
do
name=$(module_name "$path") || exit
@ -569,7 +578,7 @@ cmd_status()
shift
done
git ls-files --stage -- "$@" | grep '^160000 ' |
module_list "$@" |
while read mode sha1 stage path
do
name=$(module_name "$path") || exit