diff options
| author | Leah Rowe <leah@libreboot.org> | 2024-06-06 01:01:22 +0100 | 
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2024-06-06 01:01:22 +0100 | 
| commit | bea089bbe4a720e39ba78850f015c67dbe3d1a43 (patch) | |
| tree | ef02631630323db158f449d07d7865d2621ec465 | |
| parent | 6e1b8087c5133b4f9a384df6ea7de3250ea8e573 (diff) | |
don't use build.list to detect multi-tree projects
instead, check for the presence of target.cfg files
not in config/project/ but config/project/tree/
the way this check is done, it merely returns 1 if
config/project/*/target.cfg is detected, and returns
0 in all other cases, even if config/project/target.cfg
exists
that way, if the maintainer accidentally adds a
target.cfg in the main directory, the given multi-tree
project will not break
Signed-off-by: Leah Rowe <leah@libreboot.org>
| -rwxr-xr-x | build | 5 | ||||
| -rwxr-xr-x | include/lib.sh | 10 | ||||
| -rwxr-xr-x | script/trees | 2 | 
3 files changed, 12 insertions, 5 deletions
| @@ -117,10 +117,7 @@ fetch_trees()  {  	for x in $(items config/git); do  		./update trees -f "$x" || $err "$_xm: fetch $x" -	done -	for x in config/*/build.list; do -		[ -f "$x" ] && xp="${x#*/}" && xp="${xp%/*}" -		[ ! -f "$x" ] || [ -L "$xp" ] || x_ rm -Rf "src/$xp/$xp" +		singletree "$x" || x_ rm -Rf "src/$x/$x"  	done  	rmgit .  } diff --git a/include/lib.sh b/include/lib.sh index 6a4be7ee..bc2232ad 100755 --- a/include/lib.sh +++ b/include/lib.sh @@ -228,3 +228,13 @@ e()  	eval "$estr"  	printf "%s %s\n" "$1" "$es2" 1>&2  } + +# return 0 if project is single-tree, otherwise 1 +# e.g. coreboot is multi-tree, so 1 +singletree() +{ +	for pdir in "config/${1}/"*/target.cfg; do +		[ ! -e "$pdir" ] && continue +		[ -f "$pdir" ] && return 1 +	done +} diff --git a/script/trees b/script/trees index e22467f7..897c6ed3 100755 --- a/script/trees +++ b/script/trees @@ -39,7 +39,7 @@ main()  	remkdir "${tmpgit%/*}"  	_cmd="build_projects" -	[ -f "config/$project/build.list" ] && _cmd="build_targets" +	singletree "$project" || _cmd="build_targets"  	$_cmd $@  } | 
