diff options
Diffstat (limited to 'include/lib.sh')
-rwxr-xr-x | include/lib.sh | 62 |
1 files changed, 22 insertions, 40 deletions
diff --git a/include/lib.sh b/include/lib.sh index 27cf184f..e6a998d2 100755 --- a/include/lib.sh +++ b/include/lib.sh @@ -10,9 +10,7 @@ _ua="Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0" kbnotice="Insert a .gkb file from config/data/grub/keymap/ as keymap.gkb \ if you want a custom keymap in GRUB; use cbfstool from elf/cbfstool." -tmpdir_was_set="y" -cbdir="src/coreboot/default" -cbelfdir="elf/coreboot_nopayload_DO_NOT_FLASH" +cbelfdir="elf/.coreboot_nopayload_DO_NOT_FLASH" ifdtool="elf/ifdtool/default/ifdtool" cbfstool="elf/cbfstool/default/cbfstool" tmpgit="$PWD/tmp/gitclone" @@ -21,8 +19,7 @@ err="err_" err_() { - printf "ERROR %s: %s\n" "$0" "$1" 1>&2 - exit 1 + printf "ERROR %s: %s\n" "$0" "$1" 1>&2; exit 1 } setvars() @@ -36,32 +33,28 @@ chkvars() { for var in $@; do eval "[ -n "\${$var+x}" ] || \$err \"$var unset\"" - done + eval "[ -n "\$$var" ] || \$err \"$var unset\"" + done; return 0 } -eval `setvars "" tmpdir _nogit board boarddir relname versiondate projectsite \ - projectname aur_notice cfgsdir datadir version` +eval `setvars "" _nogit board xbmk_parent versiondate projectsite projectname \ + aur_notice cfgsdir datadir version relname` for fv in projectname projectsite version versiondate; do eval "[ ! -f "$fv" ] || read -r $fv < \"$fv\" || :" -done -chkvars projectname projectsite +done; chkvars projectname projectsite setcfg() { - if [ $# -gt 1 ]; then - printf "e \"%s\" f missing && return %s;\n" "$1" "$2" - else - printf "e \"%s\" f missing && %s \"Missing config\";\n" "$1" \ - "$err" - fi + [ $# -gt 1 ] && printf "e \"%s\" f missing && return %s;\n" "$1" "$2" + [ $# -gt 1 ] || \ + printf "e \"%s\" f not && %s \"Missing config\";\n" "$1" "$err" printf ". \"%s\" || %s \"Could not read config\";\n" "$1" "$err" } e() { - es_t="e" - [ $# -gt 1 ] && es_t="$2" + es_t="e" && [ $# -gt 1 ] && es_t="$2" es2="already exists" estr="[ -$es_t \"\$1\" ] || return 1" [ $# -gt 2 ] && estr="[ -$es_t \"\$1\" ] && return 1" && es2="missing" @@ -85,19 +78,15 @@ install_packages() 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" -[ -z "${TMPDIR+x}" ] && tmpdir_was_set="n" -if [ "$tmpdir_was_set" = "y" ]; then - [ "${TMPDIR%_*}" = "/tmp/xbmk" ] || tmpdir_was_set="n" -fi -if [ "$tmpdir_was_set" = "n" ]; then +[ -z "${TMPDIR+x}" ] || [ "${TMPDIR%_*}" = "/tmp/xbmk" ] || unset TMPDIR +[ -n "${TMPDIR+x}" ] && export TMPDIR="$TMPDIR" + +if [ -z "${TMPDIR+x}" ]; then [ -f "lock" ] && $err "$PWD/lock exists. Is a build running?" export TMPDIR="/tmp" - tmpdir="$(mktemp -d -t xbmk_XXXXXXXX)" - export TMPDIR="$tmpdir" + export TMPDIR="$(mktemp -d -t xbmk_XXXXXXXX)" touch lock || $err "cannot create 'lock' file" -else - export TMPDIR="$TMPDIR" - tmpdir="$TMPDIR" + xbmk_parent="y" fi # if "y": a coreboot target won't be built if target.cfg says release="n" @@ -115,8 +104,8 @@ x_() { [ -e ".git" ] || [ -f "version" ] || printf "unknown\n" > version || \ $err "Cannot generate unknown version file" -[ -e ".git" ] || [ -f "versiondate" ] || printf "1716415872\n" > versiondate || \ - $err "Cannot generate unknown versiondate file" +[ -e ".git" ] || [ -f "versiondate" ] || printf "1716415872\n" > versiondate \ + || $err "Cannot generate unknown versiondate file" version_="$version" [ ! -e ".git" ] || version="$(git describe --tags HEAD 2>&1)" || \ @@ -136,7 +125,7 @@ check_defconfig() [ -d "$1" ] || $err "Target '$1' not defined." for x in "$1"/config/*; do [ -f "$x" ] && printf "%s\n" "$x" && return 1 - done + done; return 0 } remkdir() @@ -145,12 +134,6 @@ remkdir() mkdir -p "$1" || $err "remkdir: !mkdir -p \"$1\"" } -git_err() -{ - printf "You need to set git name/email, like so:\n%s\n\n" "$1" 1>&2 - $err "Git name/email not configured" -} - mkrom_tarball() { printf "%s\n" "$version" > "$1/version" || $err "$1 !version" @@ -192,9 +175,8 @@ rmgit() singletree() { for targetfile in "config/${1}/"*/target.cfg; do - [ -e "$targetfile" ] || continue - [ -f "$targetfile" ] && return 1 - done + [ -e "$targetfile" ] && [ -f "$targetfile" ] && return 1 + done; return 0 } download() |