summaryrefslogtreecommitdiff
path: root/include/git.sh
diff options
context:
space:
mode:
Diffstat (limited to 'include/git.sh')
-rw-r--r--include/git.sh53
1 files changed, 7 insertions, 46 deletions
diff --git a/include/git.sh b/include/git.sh
index ded12625..9440b1af 100644
--- a/include/git.sh
+++ b/include/git.sh
@@ -54,9 +54,7 @@ git_prep()
chkvars rev
tmpclone "$1" "$2" "$tmpgit" "$rev" "$_patchdir"
if singletree "$project" || [ $# -gt 4 ]; then
- [ -f "$mdir/module.list" ] && while read -r msrcdir; do
- fetch_submodule "$msrcdir"
- done < "$mdir/module.list"; :
+ dx_ fetch_submodule "$mdir/module.list"
fi
[ "$_loc" != "$XBMK_CACHE/repo/$project" ] && \
@@ -66,15 +64,6 @@ git_prep()
mv "$tmpgit" "$_loc" || err "git_prep: !mv $tmpgit $_loc"
}
-# return 0 if project is single-tree, otherwise 1
-# e.g. coreboot is multi-tree, so 1
-singletree()
-{
- for targetfile in "config/${1}/"*/target.cfg; do
- [ -e "$targetfile" ] && [ -f "$targetfile" ] && return 1; :
- done; :
-}
-
fetch_submodule()
{
mcfgdir="$mdir/${1##*/}"; eval \
@@ -100,40 +89,12 @@ fetch_submodule()
tmpclone()
{
- livepull="n" && [ "$repofail" = "y" ] && \
- printf "Cached clone failed; trying online.\n" 1>&2 && livepull="y"
-
- repofail="n"
-
- [ $# -lt 6 ] || rm -Rf "$3" || err "git retry: !rm $3 ($1)"
- repodir="$XBMK_CACHE/repo/${1##*/}" && [ $# -gt 5 ] && repodir="$3"
- mkdir -p "$XBMK_CACHE/repo" || err "!rmdir $XBMK_CACHE/repo"
-
- if [ "$livepull" = "y" ] && [ ! -d "$repodir" ]; then
- git clone "$1" "$repodir" || git clone $2 "$repodir" || \
- err "!clone $1 $2 $repodir $4 $5" #
- elif [ -d "$repodir" ] && [ $# -lt 6 ]; then
- git -C "$repodir" pull || sleep 3 || git -C "$repodir" pull \
- || sleep 3 || git -C "$repodir" pull || :
- fi
- (
- [ $# -gt 5 ] || git clone "$repodir" "$3" || err "!clone $repodir $3"
- git -C "$3" reset --hard "$4" || err "!reset $1 $2 $3 $4 $5"
- git_am_patches "$3" "$5"
- ) || repofail="y"
-
- [ "$repofail" = "y" ] && [ $# -lt 6 ] && tmpclone "$@" retry
- [ "$repofail" = "y" ] && err "!clone $1 $2 $3 $4 $5"; :
-}
-
-git_am_patches()
-{
- for p in "$2/"*; do
- [ -L "$p" ] && continue
- [ -e "$p" ] || continue
- [ -d "$p" ] && git_am_patches "$1" "$p" && continue
- [ ! -f "$p" ] || git -C "$1" am "$p" || err "$1 $2: !am $p"
- done; :
+ [ -d "$3" ] && return 0
+ printf "Creating git clone '%s' from '%s', '%s'\n" "$3" "$1" "$2"
+ git clone "$1" "$3" || x_ rm -Rf "$3"
+ [ -d "$3" ] || x_ git clone "$2" "$3"
+ x_ git -C "$3" reset --hard "$4"
+ fx_ "eval x_ git -C \"$3\" am" find "$5" -type f
}
nuke()