distro-manifest-generator: enhance git repos detection 79/21679/2
authorStephane Desneux <stephane.desneux@iot.bzh>
Wed, 19 Jun 2019 16:16:07 +0000 (16:16 +0000)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Thu, 20 Jun 2019 14:16:37 +0000 (14:16 +0000)
Following recent change 334a201 (#21619), it's now necessary to
explore the layers folder to find git repositories.

But when the build directory is a subfolder of $METADIR (repo folder),
'find' digs too deeply to find git repositories.

This patch adds some limits for 'find' to dig into subfolders:
* only find "top" git repos (no git submodules)
* limit the search depth to 2

Bug-AGL: SPEC-2450

Change-Id: Idd907737673d196cc8ba157a5c49492119efeb88
Signed-off-by: Stephane Desneux <stephane.desneux@iot.bzh>
scripts/distro-manifest-generator.sh

index 7552b99..c6f82b0 100755 (executable)
@@ -155,8 +155,8 @@ function _getgitmanifest() {
 
        local gitrepo gitrev metagitdir sep=""
        DIST_LAYERS=""
-       for metagitdir in $(find $DIST_METADIR -type d -name ".git"); do
-               gitrepo=$($REALPATH -Ls $metagitdir/.. --relative-to=$DIST_METADIR)
+       for metagitdir in $(find $DIST_METADIR -maxdepth 2 -type d -exec test -d "{}/.git" \; -print -prune); do
+               gitrepo=$($REALPATH -Ls $metagitdir --relative-to=$DIST_METADIR)
                pushd $DIST_METADIR/$gitrepo &>/dev/null && {
                        gitrev=$( { $GIT describe --long --dirty --always 2>/dev/null || echo "unknown_revision"; } | tr ' \t' '__' )
                        popd &>/dev/null