diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/env/get.sh | 30 | ||||
| -rw-r--r-- | include/env/init.sh | 6 | ||||
| -rw-r--r-- | include/fw/inject.sh | 26 | ||||
| -rw-r--r-- | include/fw/vendor.sh | 55 | ||||
| -rw-r--r-- | include/lib.sh | 5 |
5 files changed, 37 insertions, 85 deletions
diff --git a/include/env/get.sh b/include/env/get.sh index 0863615b..9cd88174 100644 --- a/include/env/get.sh +++ b/include/env/get.sh @@ -39,14 +39,12 @@ single_tree_fetch() x_ "$mk" -f $d done - clone_project + $if_single_tree \ + clone_project; : } clone_project() { - singletree "$project" || \ - return 0 - loc="src/$project" [ -d "$loc" ] && \ return 0 @@ -174,10 +172,8 @@ try_fetch_curl() try_$2 "$cached" "$@" || \ return 1 - [ -f "$5" ] && \ - if bad_checksum "$6" "$5" 2>/dev/null; then - x_ cp "$cached" "$5" - fi + [ -f "$5" ] && bad_checksum "$6" "$5" 2>/dev/null && \ + x_ cp "$cached" "$5" if [ ! -f "$cached" ]; then return 1 @@ -202,8 +198,7 @@ try_curl() ua="Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0" ( x_ curl --location --retry 3 -A "$ua" "$2" -o "$1" ) \ - || ( x_ wget --tries 3 -U "$ua" "$2" -O "$1" ) \ - || return 1; : + || ( x_ wget --tries 3 -U "$ua" "$2" -O "$1" ) || return 1; : } try_copy() @@ -230,15 +225,9 @@ try_git() x_ mv "$tmpgitcache" "$gitdest" fi - if git -C "$gitdest" show "$7" 1>/dev/null 2>/dev/null && \ - [ "$forcepull" != "y" ]; then - # don't try to pull the latest changes if the given target - # revision already exists locally. this saves a lot of time - # during release builds, and reduces the chance that we will - # interact with grub.git or gnulib.git overall during runtime - - return 0 - fi + git -C "$gitdest" show "$7" 1>/dev/null 2>/dev/null && \ + [ "$forcepull" != "y" ] && \ + return 0 # don't pull changes if target rev exists locally if [ "$XBMK_CACHE_MIRROR" = "y" ]; then ( x_ git -C "$gitdest" fetch ) || :; : @@ -250,9 +239,8 @@ try_git() bad_checksum() { - if e "$2" f missing; then + e "$2" f missing && \ return 0 - fi build_sbase csum="$(x_ "$sha512sum" "$2" | awk '{print $1}')" || \ diff --git a/include/env/init.sh b/include/env/init.sh index d17b5fb8..d04474e3 100644 --- a/include/env/init.sh +++ b/include/env/init.sh @@ -165,13 +165,11 @@ xbmk_parent_set_env() x_ chmod -w "$xbmklock" - xbmk_parent_set_export - xbmk_set_version + forx 'xbmk_%s' parent_set_export set_version remkdir "$xbtmp" "$xbtmp/xbmkpath" - xbmk_set_pyver - xbmk_set_mirror + forx 'xbmk_set_%s' pyver mirror } xbmk_parent_check_tmp() diff --git a/include/fw/inject.sh b/include/fw/inject.sh index adff3861..900d2a5d 100644 --- a/include/fw/inject.sh +++ b/include/fw/inject.sh @@ -18,8 +18,7 @@ inject() { remkdir "$tmpromdel" - [ $# -lt 1 ] && \ - err "No options specified" "inject" "$@" + [ $# -lt 1 ] && err "No options specified" "inject" "$@" archive="$1"; new_mac="xx:xx:xx:xx:xx:xx" @@ -58,9 +57,8 @@ check_release() { [ -L "$archive" ] && \ err "'$archive' is a symlink" "check_release" "$@" - if e "$archive" f missing; then + e "$archive" f missing && \ err "'$archive' missing" "check_release" "$@" - fi archivename="`basename "$archive" || err "Can't get '$archive' name"`" \ || err "can't get '$archive' name" "check_release" "$@" @@ -100,7 +98,6 @@ check_target() x_ "$mk" -d coreboot "$tree" ifdtool="elf/coreboot/$tree/ifdtool" - [ -n "$IFD_platform" ] && \ ifdprefix="-p $IFD_platform"; : } @@ -125,8 +122,7 @@ patch_release() fi done - readkconfig || \ - return 1 + readkconfig || return 1 [ -n "$new_mac" ] && [ -n "$CONFIG_GBE_BIN_PATH" ] && \ modify_mac; : @@ -137,15 +133,13 @@ readkconfig() x_ rm -f "$xbtmp/cbcfg" fx_ scankconfig x_ find "$boarddir/config" -type f - if e "$xbtmp/cbcfg" f missing; then + e "$xbtmp/cbcfg" f missing && \ return 1 - fi . "$xbtmp/cbcfg" || \ err "Can't read '$xbtmp/cbcfg'" "readkconfig" "$@" - setvfile "$@" || \ - return 1; : + setvfile "$@" || return 1; : } scankconfig() @@ -173,10 +167,9 @@ modify_mac() newmac() { - if e "$1" f; then - xchanged="y" - x_ "$ifdtool" $ifdprefix -i GbE:"$xbtmp/gbe" "$1" -O "$1" - fi + e "$1" f || return 0 + xchanged="y" + x_ "$ifdtool" $ifdprefix -i GbE:"$xbtmp/gbe" "$1" -O "$1" } remktar() @@ -190,6 +183,5 @@ remktar() ) || err "Cannot re-generate '$archive'" "remktar" "$@" mv "${tmpromdir%"/bin/$board"}/bin/${relname}_${board}.tar.xz" \ - "$archive" || \ - err "'$archive' -> Can't overwrite" "remktar" "$@"; : + "$archive" || err "'$archive' -> Can't overwrite" "remktar" "$@"; : } diff --git a/include/fw/vendor.sh b/include/fw/vendor.sh index 41c51e09..05f8b226 100644 --- a/include/fw/vendor.sh +++ b/include/fw/vendor.sh @@ -51,14 +51,12 @@ eval "`newvar DL_hash DL_url DL_url_bkup E6400_VGA_bin_hash E6400_VGA_DL_hash \ download() { - [ $# -lt 1 ] && \ - err "No argument given" "download" "$@" + [ $# -lt 1 ] && err "No argument given" "download" "$@" export PATH="$PATH:/sbin" board="$1" - check_target || return 0 - readkconfig download + check_target && readkconfig download; : } getfiles() @@ -108,14 +106,12 @@ fetch() dlop="$6" binsum="$7" - [ -z "$binsum" ] && \ - err "binsum is empty (no checksum)" "fetch" "$@" + [ -z "$binsum" ] && err "binsum is empty (no checksum)" "fetch" "$@" _dl="$XBMK_CACHE/file/$dlsum" # internet file to extract from e.g. .exe _dl_bin="$XBMK_CACHE/file/$binsum" # extracted file e.g. me.bin - [ "$5" = "/dev/null" ] && \ - return 0 + [ "$5" = "/dev/null" ] && return 0 # fetch/extract disabled # an extracted vendor file will be placed in pre_dest first, for # verifying its checksum. if it matches, it is later moved to _dest @@ -160,32 +156,24 @@ fetch() [ ! -f "$_dest" ] || \ return 0; : - [ -z "$binsum" ] && \ - printf "WARNING: %s: checksum undefined\n" "$_dest" 1>&2 - x_ rm -f "$_dest" + [ -z "$binsum" ] && printf "WARNING: %s: no checksum\n" "$_dest" 1>&2 err "Can't safely extract '$_dest', for board '$board'" "fetch" "$@" } mkdst() { - if bad_checksum "$1" "$2" 2>/dev/null; then - x_ rm -f "$2" - else + if ! bad_checksum "$1" "$2" 2>/dev/null; then x_ mv "$2" "$_dl_bin" x_ cp "$_dl_bin" "$_dest" - exit 1 fi + x_ rm -f "$2" } extract_intel_me() { - if e "$mecleaner" f missing; then - err "$cbdir: me_cleaner missing" "extract_intel_me" "$@" - fi - mfs="" _7ztest="$xbtmp/metmp/a" _metmp="$xbtmp/me.bin" @@ -228,10 +216,8 @@ extract_intel_me() # must be called inside a subshell. find_me() { - [ -f "$_metmp" ] && \ - exit 1 # me.bin found - [ -L "$1" ] && \ - return 0 # symlinks disabled for security reasons + [ -f "$_metmp" ] && exit 1 # me.bin found + [ -L "$1" ] && return 0 # symlinks disabled for security reasons _7ztest="${_7ztest}a" @@ -268,8 +254,7 @@ find_me() return 0 # can't extract, so try the next file fi - [ -f "$_metmp" ] && \ - exit 1 # me.bin found + [ -f "$_metmp" ] && exit 1 # me.bin found ( fx_ find_me x_ find "$_7ztest" -type f ) || exit 1; : # 1==me found } @@ -318,8 +303,7 @@ extract_kbc1126ec_dump() unar -D 68*.CAB Rom.bin || \ err "!kbc1126 unar" "extract_kbc1126ec" "$@" - [ ! -f "ec.bin" ] && \ - x_ mv Rom.bin ec.bin + [ -f "ec.bin" ] || x_ mv Rom.bin ec.bin x_ e ec.bin f x_ "$kbc1126_ec_dump" ec.bin @@ -365,8 +349,7 @@ extract_sch5545ec() # https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t480-type-20l5-20l6/20l5/solutions/ht508988 extract_tbfw() { - [ -z "$TBFW_size" ] && \ - err "$board: TBFW_size unset" "extract_tbfw" "$@" + [ -z "$TBFW_size" ] && err "$board: TBFW_size unset" extract_tbfw "$@" fx_ copytb x_ find "$appdir" -type f -name "TBT.bin" } @@ -415,12 +398,8 @@ getvfile() bootstrap if [ $# -gt 0 ]; then - # download vendor files - - getfiles - else - # inject vendor files - + getfiles # ./mk download + else # ./mk inject fx_ prep x_ find "$tmpromdir" -mindepth 1 -maxdepth 1 \ -type f -name "*.rom" ( check_vendor_hashes ) || \ @@ -484,8 +463,7 @@ prep() ( mksha512 "$_xrom" "vendorhashes" ) || err; : fi - add_vfiles "$_xrom" || \ - return 1 # no need to insert files + add_vfiles "$_xrom" || return 1 # no need to insert files if [ "$nuke" = "nuke" ]; then pad_one_byte "$_xrom" @@ -548,8 +526,7 @@ add_vfiles() vfile() { - [ "$2" = "/dev/null" ] && \ - return 0 + [ "$2" = "/dev/null" ] && return 0 cbfsname="$1" _dest="${2##*../}" diff --git a/include/lib.sh b/include/lib.sh index 63a82084..03758982 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -80,8 +80,6 @@ e() 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() { ( fx_ "eval exit 1 && err" find "config/$1/"*/ -type f \ @@ -116,8 +114,7 @@ unpad_one_byte() build_sbase() { - [ ! -f "$sha512sum" ] && \ - x_ make -C "$xbmkpwd/util/sbase"; : + [ ! -f "$sha512sum" ] && x_ make -C "$xbmkpwd/util/sbase"; : } remkdir() |
