Files
xen/scripts/git-checkout.sh
T
Anthony PERARD 4834dd5521 git-checkout.sh: handle running git-checkout from a different directory
"$DIR" might not be a full path and it might not have `pwd` as ".."
directory. So use `cd -` to undo the first `cd` command.

Also, use `basename` to make a symbolic link with a relative path.

This doesn't matter yet but it will when for example the commands to
clone OVMF is been run from tools/ rather than tools/firmware/.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Release-acked-by: Henry Wang <Henry.Wang@arm.com>
2022-10-14 20:56:57 +01:00

28 lines
475 B
Bash
Executable File

#!/bin/sh
if test $# -lt 3; then
echo "Usage: $0 <tree> <tag> <dir>"
exit 1
fi
TREE=$1
TAG=$2
DIR=$3
set -e
if test \! -d $DIR-remote; then
rm -rf $DIR-remote $DIR-remote.tmp
mkdir -p $DIR-remote.tmp; rmdir $DIR-remote.tmp
$GIT clone $TREE $DIR-remote.tmp
if test "$TAG" ; then
cd $DIR-remote.tmp
$GIT branch -D dummy >/dev/null 2>&1 ||:
$GIT checkout -b dummy $TAG
cd -
fi
mv $DIR-remote.tmp $DIR-remote
fi
rm -f $DIR
ln -sf $(basename $DIR-remote) $DIR