mirror of https://gerrit.osmocom.org/osmo-ci
osmo-clean-workspace.sh: make more robust against broken git clones
Change-Id: Ifa70fd75468b3e21b5c9327ea28bc7a4c8cb549d
This commit is contained in:
parent
91404470d6
commit
e12ebb99e4
|
@ -28,16 +28,37 @@ git checkout -f HEAD
|
||||||
# Git automatically excludes subdirs that are git clones.
|
# Git automatically excludes subdirs that are git clones.
|
||||||
git clean -dxf
|
git clean -dxf
|
||||||
|
|
||||||
|
git_clean() {
|
||||||
|
repos="$1"
|
||||||
|
if [ ! -d "$repos" ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "$repos/.git" ]; then
|
||||||
|
echo "Not a git clone, removing: $repos"
|
||||||
|
rm -rf "$repos"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
if ! git -C "$repos" checkout -f HEAD; then
|
||||||
|
echo "Cleaning failed, removing: $repos"
|
||||||
|
rm -rf "$repos"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
if ! git -C "$repos" clean -dxf; then
|
||||||
|
echo "Cleaning failed, removing: $repos"
|
||||||
|
rm -rf "$repos"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# leave the deps checkouts around, to not clone entire git history every time,
|
# leave the deps checkouts around, to not clone entire git history every time,
|
||||||
# but clean each git of build artifacts.
|
# but clean each git of build artifacts.
|
||||||
if [ -d "$deps" ]; then
|
if [ -d "$deps" ]; then
|
||||||
for dep_dir in "$deps"/* ; do
|
for dep_dir in "$deps"/* ; do
|
||||||
git -C "$dep_dir" checkout -f HEAD
|
git_clean "$dep_dir"
|
||||||
git -C "$dep_dir" clean -dxf
|
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d "layer1-headers" ]; then
|
if [ -d "layer1-headers" ]; then
|
||||||
git -C "layer1-headers" checkout -f HEAD
|
git_clean "layer1-headers"
|
||||||
git -C "layer1-headers" clean -dxf
|
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue