qemu-e2k/scripts/git-submodule.sh

66 lines
1.5 KiB
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.
substat=".git-submodule-status"
command=$1
shift
modules="$@"
test -z "$GIT" && GIT=git
error() {
echo "$0: $*"
echo
echo "Unable to automatically checkout GIT submodules '$modules'."
echo "If you require use of an alternative GIT binary (for example to"
echo "enable use of a transparent proxy), then please specify it by"
echo "running configure by with the '--with-git' argument. e.g."
echo
echo " $ ./configure --with-git='tsocks git'"
echo
echo "Alternatively you may disable automatic GIT submodule checkout"
echo "with:"
echo
echo " $ ./configure --disable-git-update'"
echo
echo "and then manually update submodules prior to running make, with:"
echo
echo " $ scripts/git-sbumodule.sh update $modules"
echo
exit 1
}
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
CURSTATUS=`$GIT submodule status $modules`
OLDSTATUS=`cat $substat`
test "$CURSTATUS" = "$OLDSTATUS"
exit $?
;;
update)
$GIT submodule update --init $modules 1>/dev/null
test $? -ne 0 && error "failed to update modules"
$GIT submodule status $modules > "${substat}"
test $? -ne 0 && error "failed to save git submodule status" >&2
;;
esac
exit 0