summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/get.sh11
-rw-r--r--include/init.sh17
-rw-r--r--include/lib.sh20
-rw-r--r--include/tree.sh7
-rw-r--r--include/vendor.sh16
5 files changed, 43 insertions, 28 deletions
diff --git a/include/get.sh b/include/get.sh
index 667ab398..ae2c5a35 100644
--- a/include/get.sh
+++ b/include/get.sh
@@ -22,7 +22,7 @@ fetch_project()
eval "`setvars "" xtree`"
eval "`setcfg "config/git/$project/pkg.cfg"`"
- chkvars url
+ chkvars url bkup_url
[ -n "$xtree" ] && x_ ./mk -f coreboot "$xtree"
[ -z "$depend" ] || for d in $depend ; do
@@ -85,9 +85,12 @@ xbmkget()
echk="f" && [ "$1" = "git" ] && echk="d"
for url in "$2" "$3"; do
- [ -n "$url" ] && try_file "$url" "$@" && \
- eval "[ -$echk \"$4\" ] && return 0"
- done && err "$1 $2 $3 $4: not downloaded"; :
+ [ -n "$url" ] || err "empty URL given in: xbmkget $*"
+ try_file "$url" "$@" || continue
+ eval "[ -$echk \"$4\" ] || continue"
+ return 0 # successful download/copy
+ done
+ err "$1 $2 $3 $4: not downloaded"; :
}
try_file()
diff --git a/include/init.sh b/include/init.sh
index cd4acf43..39d48948 100644
--- a/include/init.sh
+++ b/include/init.sh
@@ -30,7 +30,7 @@ xbmk_init()
id -u 1>/dev/null 2>/dev/null || err "suid check failed (id -u)"
[ "$(id -u)" != "0" ] || err "this command as root is not permitted"
- for init_cmd in get_version set_env git_init child_exec; do
+ for init_cmd in get_version set_env set_threads git_init child_exec; do
xbmk_$init_cmd "$@" || break
done
}
@@ -76,7 +76,7 @@ xbmk_set_env()
if [ "$is_child" = "y" ]; then
[ -z "${XBMK_CACHE+x}" ] && err "XBMK_CACHE unset on child"
- [ -z "${XBMK_THREADS+x}" ] && err "XBMK_THREADS unset on child"
+ [ -z "${XBMK_THREADS+x}" ] && xbmk_set_threads
e "lock" f missing && err "lock file absent on child"
return 1
fi
@@ -104,10 +104,6 @@ xbmk_set_env()
[ "$XBMK_RELEASE" = "Y" ] && export XBMK_RELEASE="y"
[ "$XBMK_RELEASE" = "y" ] || export XBMK_RELEASE="n"
- [ -z "${XBMK_THREADS+x}" ] && export XBMK_THREADS=1
- expr "X$XBMK_THREADS" : "X-\{0,1\}[0123456789][0123456789]*$" \
- 1>/dev/null 2>/dev/null || export XBMK_THREADS=1
-
xbmk_set_version
export LOCALVERSION="-$projectname-${version%%-*}"
@@ -117,6 +113,13 @@ xbmk_set_env()
xbmk_set_pyver
}
+xbmk_set_threads()
+{
+ [ -z "${XBMK_THREADS+x}" ] && export XBMK_THREADS=1
+ expr "X$XBMK_THREADS" : "X-\{0,1\}[0123456789][0123456789]*$" \
+ 1>/dev/null 2>/dev/null || export XBMK_THREADS=1
+}
+
xbmk_set_version()
{
version_="$version"
@@ -178,7 +181,7 @@ pybin()
[ $venv -gt 0 ] && for pypath in "/usr/local/bin" "/usr/bin"; do
[ -e "$pypath/$1" ] && [ ! -d "$pypath/$1" ] && \
[ -x "$pypath/$1" ] && printf "%s/%s\n" "$pypath" "$1" && \
- return 0
+ return 0; :
done && return 1
# Defer to normal command -v if not a venv
diff --git a/include/lib.sh b/include/lib.sh
index 6c831795..7c4d71ea 100644
--- a/include/lib.sh
+++ b/include/lib.sh
@@ -53,8 +53,10 @@ setvars()
fi
val="$1"
shift 1
- for var in "$@"; do
- _setvars="$var=\"$val\"; $_setvars"
+ while true; do
+ [ $# -lt 1 ] && break
+ _setvars="$1=\"$val\"; $_setvars"
+ shift 1
done
printf "%s\n" "${_setvars% }"
}
@@ -69,9 +71,11 @@ setcfg()
chkvars()
{
- for var in "$@"; do
- eval "[ -n \"\${$var+x}\" ] || err \"$var unset\""
- eval "[ -n \"\$$var\" ] || err \"$var unset\""
+ while true; do
+ [ $# -lt 1 ] && break
+ eval "[ -n \"\${$1+x}\" ] || err \"$1 unset\""
+ eval "[ -n \"\$$1\" ] || err \"$1 unset\""
+ shift 1
done; :
}
@@ -106,9 +110,9 @@ fx_()
dx_()
{
- [ -f "$2" ] && while read -r fx; do
- $1 "$fx" || return 1
- done < "$2"; :
+ [ ! -f "$2" ] || while read -r fx; do
+ $1 "$fx" || return 1; :
+ done < "$2" || err "dx_ $*: cannot read '$2'"; :
}
x_()
diff --git a/include/tree.sh b/include/tree.sh
index 25d4732c..8d787d4c 100644
--- a/include/tree.sh
+++ b/include/tree.sh
@@ -332,8 +332,9 @@ check_makefile()
copy_elf()
{
- [ -f "$listfile" ] && x_ mkdir -p "$dest_dir" && while read -r f; do
- [ -f "$srcdir/$f" ] && x_ cp "$srcdir/$f" "$dest_dir"
- done < "$listfile"
+ [ -f "$listfile" ] && x_ mkdir -p "$dest_dir"
+ [ ! -f "$listfile" ] || while read -r f; do
+ [ -f "$srcdir/$f" ] && x_ cp "$srcdir/$f" "$dest_dir"; :
+ done < "$listfile" || err "copy_elf $*: cannot read '$listfile'"; :
x_ make clean -C "$srcdir" $cleanargs
}
diff --git a/include/vendor.sh b/include/vendor.sh
index 2732eade..88c3fa04 100644
--- a/include/vendor.sh
+++ b/include/vendor.sh
@@ -38,7 +38,7 @@ eval "`setvars "" has_hashes EC_hash DL_hash DL_url_bkup MRC_refcode_gbe vcfg \
E6400_VGA_DL_hash E6400_VGA_DL_url E6400_VGA_DL_url_bkup E6400_VGA_offset \
E6400_VGA_romname SCH5545EC_DL_url_bkup SCH5545EC_DL_hash _dest mecleaner \
kbc1126_ec_dump MRC_refcode_cbtree _dl SCH5545EC_DL_url EC_url rom DL_url \
- nuke cbfstoolref FSPFD_hash _7ztest ME11bootguard ME11delta xromsize \
+ nuke cbfstoolref FSPFD_hash ME11bootguard ME11delta xromsize \
ME11version ME11sku ME11pch _me _metmp mfs TBFW_url_bkup TBFW_url cbdir \
TBFW_hash TBFW_size hashfile EC_url_bkup FSPM_bin_hash FSPS_bin_hash \
EC_FW1_hash EC_FW2_hash ME_bin_hash MRC_bin_hash REF_bin_hash _dl_bin \
@@ -156,7 +156,6 @@ extract_intel_me()
{
e "$mecleaner" f not && err "$cbdir: me_cleaner missing"
- _7ztest="$xbmklocal/metmp/a"
_metmp="$xbmklocal/me.bin"
x_ rm -f "$_metmp" "$xbmklocal/a"
@@ -165,7 +164,7 @@ extract_intel_me()
[ "$ME11bootguard" = "y" ] && x_ ./mk -f deguard
set +u +e
- x_ rm -Rf "$xbmkpwd/metmp"
+ x_ rm -Rf "$xbmklocal/metmp"
( fx_ find_me x_ find "$xbmkpwd/$appdir" -type f ) || :
[ "$ME11bootguard" != "y" ] && x_ mv "$_metmp" "$_pre_dest" && return 0
@@ -182,14 +181,19 @@ find_me()
[ -f "$_metmp" ] && exit 1
[ -L "$1" ] && return 0
- _7ztest="${_7ztest}a" && _r="-r" && [ -n "$mfs" ] && _r=""
+ _7x="`mktemp`" || err "find_me: can't make tmp file"
+ x_ rm -f "$_7x"
+ _7x="$xbmklocal/metmp/${_7x##*/}"
+
+ _r="-r"
+ [ -n "$mfs" ] && _r=""
"$mecleaner" $mfs $_r -t -O "$xbmklocal/a" -M "$_metmp" "$1" || \
"$mecleaner" $mfs $_r -t -O "$_metmp" "$1" || "$me7updateparser" \
- -O "$_metmp" "$1" || extract_archive "$1" "$_7ztest" || return 0
+ -O "$_metmp" "$1" || extract_archive "$1" "$_7x" || return 0
[ -f "$_metmp" ] && exit 1
- ( fx_ find_me x_ find "$_7ztest" -type f ) || exit 1; :
+ ( fx_ find_me x_ find "$_7x" -type f ) || exit 1; :
}
extract_archive()