diff options
Diffstat (limited to 'include/git.sh')
-rwxr-xr-x | include/git.sh | 64 |
1 files changed, 27 insertions, 37 deletions
diff --git a/include/git.sh b/include/git.sh index c1e7b4ba..6818578b 100755 --- a/include/git.sh +++ b/include/git.sh @@ -2,8 +2,8 @@ # Copyright (c) 2020-2021,2023-2024 Leah Rowe <leah@libreboot.org> # Copyright (c) 2022 Caleb La Grange <thonkpeasant@protonmail.com> -eval "$(setvars "" _target rev _xm loc url bkup_url depend tree_depend xtree \ - mdir subhash subrepo subrepo_bkup subfile subfile_bkup)" +eval `setvars "" _target rev loc url bkup_url depend tree_depend xtree mdir \ + subhash subrepo subrepo_bkup subfile subfile_bkup` fetch_project_trees() { @@ -17,10 +17,9 @@ fetch_project_trees() fetch_config() { rm -f "$cfgsdir/"*/seen || $err "fetch_config $cfgsdir: !rm seen" - eval "$(setvars "" xtree tree_depend)" + eval `setvars "" xtree tree_depend` while true; do - eval "$(setvars "" rev tree)" - _xm="fetch_config $project/$_target" + eval `setvars "" rev tree` load_target_config "$_target" [ "$_target" = "$tree" ] && break _target="$tree" @@ -31,10 +30,8 @@ fetch_config() load_target_config() { - [ -f "$cfgsdir/$1/target.cfg" ] || $err "$1: target.cfg missing" - [ -f "$cfgsdir/$1/seen" ] && $err "$_xm cfg: infinite loop in trees" - - . "$cfgsdir/$1/target.cfg" || $err "load_target_config !$cfgsdir/$1" + [ -f "$cfgsdir/$1/seen" ] && $err "$project/$_target: tree loop" + eval `setcfg "$cfgsdir/$1/target.cfg"` touch "$cfgsdir/$1/seen" || $err "load_config $cfgsdir/$1: !mk seen" } @@ -49,30 +46,27 @@ prepare_new_tree() fetch_project_repo() { - eval "$(setvars "" xtree tree_depend)" + eval `setvars "" xtree tree_depend` + eval `setcfg "config/git/$project/pkg.cfg"` - scan_config "$project" "config/git" - chkvars loc url + chkvars url - [ -n "$xtree" ] && [ ! -d "src/coreboot/$xtree" ] && \ - x_ ./update trees -f coreboot "$xtree" + [ -n "$xtree" ] && x_ ./update trees -f coreboot "$xtree" [ -z "$depend" ] || for d in $depend ; do - printf "'%s' needs dependency '%s'; grabbing '%s' now\n" \ - "$project" "$d" "$d" + printf "'%s' needs '%s'; grabbing '%s'\n" "$project" "$d" "$d" x_ ./update trees -f $d done clone_project for x in config/git/*; do - [ -f "$x" ] && nuke "${x##*/}" "src/${x##*/}" 2>/dev/null; \ - continue - done + [ -d "$x" ] && nuke "${x##*/}" "src/${x##*/}" 2>/dev/null + done; return 0 } clone_project() { - loc="${loc#src/}" - loc="src/$loc" + loc="src/$project" + singletree "$project" || loc="src/$project/$project" printf "Downloading project '%s' to '%s'\n" "$project" "$loc" e "$loc" d && return 0 @@ -96,7 +90,7 @@ git_prep() [ "$project" = "coreboot" ] && [ -n "$xtree" ] && [ $# -gt 2 ] && \ [ "$xtree" != "$tree" ] && link_crossgcc "$_loc" - [ "$xbmk_release" = "y" ] && [ "$_loc" != "src/$project/$project" ] \ + [ "$XBMK_RELEASE" = "y" ] && [ "$_loc" != "src/$project/$project" ] \ && rmgit "$tmpgit" move_repo "$_loc" @@ -115,29 +109,25 @@ prep_submodules() fetch_submodule() { mcfgdir="$mdir/${1##*/}" - eval "$(setvars "" subhash subrepo subrepo_bkup subfile subfile_bkup)" + eval `setvars "" subhash subrepo subrepo_bkup subfile subfile_bkup st` [ ! -f "$mcfgdir/module.cfg" ] || . "$mcfgdir/module.cfg" || \ $err "! . $mcfgdir/module.cfg" - st="" - for _st in repo file; do - _seval="if [ -n \"\$sub$_st\" ] || [ -n \"\$sub${_st}_bkup\" ]" - eval "$_seval; then st=\"\$st \$_st\"; fi" + for xt in repo file; do + _seval="if [ -n \"\$sub$xt\" ] || [ -n \"\$sub${xt}_bkup\" ]" + eval "$_seval; then st=\"\$st \$xt\"; fi" done - st="${st# }" - [ "$st" = "repo file" ] && $err "$mdir: repo/file both defined" - [ -z "$st" ] && return 0 # subrepo/subfile not defined + st="${st# }" && [ "$st" = "repo file" ] && $err "$mdir: repo+file" + [ -z "$st" ] && return 0 # subrepo/subfile not defined chkvars "sub${st}" "sub${st}_bkup" "subhash" - if [ "$st" = "repo" ]; then - rm -Rf "$tmpgit/$1" || $err "!rm '$mdir' '$1'" - tmpclone "$subrepo" "$subrepo_bkup" "$tmpgit/$1" "$subhash" \ - "$mdir/${1##*/}/patches" - else - download "$subfile" "$subfile_bkup" "$tmpgit/$1" "$subhash" - fi + [ "$st" = "file" ] && download "$subfile" "$subfile_bkup" \ + "$tmpgit/$1" "$subhash" && return 0 + rm -Rf "$tmpgit/$1" || $err "!rm '$mdir' '$1'" + tmpclone "$subrepo" "$subrepo_bkup" "$tmpgit/$1" "$subhash" \ + "$mdir/${1##*/}/patches" } tmpclone() |