The stderr from git is important if git fails to checkout modules due to network problems, or other unexpected errors. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 20171020130748.22983-1-berrange@redhat.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
		
			
				
	
	
		
			39 lines
		
	
	
		
			735 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			735 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
#
 | 
						|
# This code is licensed under the GPL version 2 or later.  See
 | 
						|
# the COPYING file in the top-level directory.
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
substat=".git-submodule-status"
 | 
						|
 | 
						|
command=$1
 | 
						|
shift
 | 
						|
modules="$@"
 | 
						|
 | 
						|
if test -z "$modules"
 | 
						|
then
 | 
						|
    test -e $substat || touch $substat
 | 
						|
    exit 0
 | 
						|
fi
 | 
						|
 | 
						|
if ! test -e ".git"
 | 
						|
then
 | 
						|
    echo "$0: unexpectedly called with submodules but no git checkout exists"
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
 | 
						|
case "$command" in
 | 
						|
status)
 | 
						|
    test -f "$substat" || exit 1
 | 
						|
    trap "rm -f ${substat}.tmp" EXIT
 | 
						|
    git submodule status $modules > "${substat}.tmp"
 | 
						|
    diff "${substat}" "${substat}.tmp" >/dev/null
 | 
						|
    exit $?
 | 
						|
    ;;
 | 
						|
update)
 | 
						|
    git submodule update --init $modules 1>/dev/null
 | 
						|
    git submodule status $modules > "${substat}"
 | 
						|
    ;;
 | 
						|
esac
 |