summaryrefslogtreecommitdiff
path: root/include/git.sh
diff options
context:
space:
mode:
Diffstat (limited to 'include/git.sh')
-rwxr-xr-xinclude/git.sh64
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()