diff options
Diffstat (limited to 'include/git.sh')
-rw-r--r-- | include/git.sh | 56 |
1 files changed, 32 insertions, 24 deletions
diff --git a/include/git.sh b/include/git.sh index 2c43cd22..42b04010 100644 --- a/include/git.sh +++ b/include/git.sh @@ -1,9 +1,11 @@ # SPDX-License-Identifier: GPL-3.0-or-later -# Copyright (c) 2020-2021,2023-2024 Leah Rowe <leah@libreboot.org> +# Copyright (c) 2020-2021,2023-2025 Leah Rowe <leah@libreboot.org> # Copyright (c) 2022 Caleb La Grange <thonkpeasant@protonmail.com> -eval `setvars "" loc url bkup_url subfile subhash subrepo subrepo_bkup \ - depend subfile_bkup repofail` +eval "`setvars "" loc url bkup_url subfile subhash subrepo subrepo_bkup \ + depend subfile_bkup repofail`" + +tmpgit="$xbmkpwd/tmp/gitclone" fetch_targets() { @@ -12,14 +14,15 @@ fetch_targets() e "src/$project/$tree" d && return 0 printf "Creating %s tree %s\n" "$project" "$tree" - git_prep "$loc" "$loc" "$PWD/$configdir/$tree/patches" \ - "src/$project/$tree" u; nuke "$project/$tree" "$project/$tree" + git_prep "$loc" "$loc" "$xbmkpwd/$configdir/$tree/patches" \ + "src/$project/$tree" u + nuke "$project/$tree" "$project/$tree" } fetch_project() { - eval `setvars "" xtree tree_depend` - eval `setcfg "config/git/$project/pkg.cfg"` + eval "`setvars "" xtree tree_depend`" + eval "`setcfg "config/git/$project/pkg.cfg"`" chkvars url @@ -31,8 +34,8 @@ fetch_project() clone_project for x in config/git/*; do - [ -d "$x" ] && nuke "${x##*/}" "src/${x##*/}" 2>/dev/null - done; return 0 + [ -d "$x" ] && nuke "${x##*/}" "src/${x##*/}" 2>/dev/null; : + done; : } clone_project() @@ -42,21 +45,25 @@ clone_project() printf "Downloading project '%s' to '%s'\n" "$project" "$loc" e "$loc" d missing && remkdir "${tmpgit%/*}" && git_prep \ - "$url" "$bkup_url" "$PWD/config/$project/patches" "$loc"; : + "$url" "$bkup_url" "$xbmkpwd/config/$project/patches" "$loc"; : } git_prep() { - _patchdir="$3"; _loc="$4" # $1 and $2 are gitrepo and gitrepo_backup + _patchdir="$3" + _loc="$4" # $1 and $2 are gitrepo and gitrepo_backup - chkvars rev; tmpclone "$1" "$2" "$tmpgit" "$rev" "$_patchdir" + chkvars rev + tmpclone "$1" "$2" "$tmpgit" "$rev" "$_patchdir" if singletree "$project" || [ $# -gt 4 ]; then - prep_submodules "$_loc"; fi + prep_submodules "$_loc" + fi [ "$project" = "coreboot" ] && [ -n "$xtree" ] && [ $# -gt 2 ] && \ [ "$xtree" != "$tree" ] && link_crossgcc "$_loc" [ "$XBMK_RELEASE" = "y" ] && \ - [ "$_loc" != "$XBMK_CACHE/repo/$project" ] && rmgit "$tmpgit" + [ "$_loc" != "$XBMK_CACHE/repo/$project" ] && \ + rmgit "$tmpgit" move_repo "$_loc" } @@ -65,13 +72,14 @@ prep_submodules() { [ -f "$mdir/module.list" ] && while read -r msrcdir; do fetch_submodule "$msrcdir" - done < "$mdir/module.list"; return 0 + done < "$mdir/module.list"; : } fetch_submodule() { mcfgdir="$mdir/${1##*/}" - eval `setvars "" subhash subrepo subrepo_bkup subfile subfile_bkup st` + eval "`setvars "" subhash subrepo subrepo_bkup subfile subfile_bkup \ + st`" [ ! -f "$mcfgdir/module.cfg" ] || . "$mcfgdir/module.cfg" || \ $err "! . $mcfgdir/module.cfg" @@ -91,10 +99,9 @@ fetch_submodule() "$mdir/${1##*/}/patches" } -livepull="n" tmpclone() { - [ "$repofail" = "y" ] && \ + livepull="n" && [ "$repofail" = "y" ] && \ printf "Cached clone failed; trying online.\n" 1>&2 && livepull="y" repofail="n" @@ -104,7 +111,7 @@ tmpclone() mkdir -p "$XBMK_CACHE/repo" || $err "!rmdir $XBMK_CACHE/repo" if [ "$livepull" = "y" ] && [ ! -d "$repodir" ]; then - git clone $1 "$repodir" || git clone $2 "$repodir" || \ + 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 \ @@ -116,17 +123,18 @@ tmpclone() git_am_patches "$3" "$5" ) || repofail="y" - [ "$repofail" = "y" ] && [ $# -lt 6 ] && tmpclone $@ retry + [ "$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 + [ -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; return 0 + done; : } link_crossgcc() @@ -134,7 +142,7 @@ link_crossgcc() ( x_ cd "$tmpgit/util" && x_ rm -Rf crossgcc ln -s "../../$xtree/util/crossgcc" crossgcc || $err "$1: !xgcc link" - ) || $err "$1: !xgcc link" + ) || $err "$1: !xgcc link"; : } move_repo() @@ -150,5 +158,5 @@ nuke() e "config/${1%/}/nuke.list" f missing || while read -r nukefile; do rmf="src/${2%/}/$nukefile" && [ -L "$rmf" ] && continue e "$rmf" e missing || rm -Rf "$rmf" || $err "!rm $rmf, ${2%/}" - done < "config/${1%/}/nuke.list"; return 0 + done < "config/${1%/}/nuke.list"; : } |