git-submodule: replace duplicated code with a module_list function
authorDavid Aguilar <davvid@gmail.com>
Fri, 22 Aug 2008 07:30:50 +0000 (00:30 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 23 Aug 2008 05:38:21 +0000 (22:38 -0700)
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>
git-submodule.sh

index 2d57d60458529e9b2816cdfd7f39df5dd5d99913..2a3a197d1057dcc73570a9946d5e5d8d9bbcc959 100755 (executable)
@@ -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