diff options
Diffstat (limited to 'build')
-rwxr-xr-x | build | 43 |
1 files changed, 24 insertions, 19 deletions
@@ -16,12 +16,12 @@ fi . "include/vendor.sh" . "include/mrc.sh" -eval "$(setvars "" vdir src_dirname srcdir _xm mode xp)" +eval `setvars "" vdir src_dirname srcdir mode xp` err="fail" main() { - [ $# -lt 1 ] && badcmd + [ $# -lt 1 ] && $err "bad command" spath="script/$1" for g in "which git" "git config --global user.name" \ @@ -35,7 +35,7 @@ main() inject) shift 1; vendor_inject $@ ;; download) shift 1; vendor_download $@ ;; *) - [ -f "$spath" ] || badcmd + [ -f "$spath" ] || $err "bad command" shift 1; "$spath" $@ || $err "excmd: $spath $@" ;; esac set -u -e # some commands disable them. turn them on! @@ -45,7 +45,7 @@ git_init() { [ -L ".git" ] && return 1 [ -e ".git" ] && return 0 - eval "$(setvars "$(date -Rud @$versiondate)" cdate _nogit)" + eval `setvars "$(date -Rud @$versiondate)" cdate _nogit` git init || return 1 git add -A . || return 1 @@ -54,17 +54,23 @@ git_init() git tag -a "$version" -m "$projectname $version" || return 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" +} + mkrelease() { export XBMK_RELEASE="y" vdir="release" while getopts d:m: option; do - [ -z "$OPTARG" ] && badcmd "empty argument not allowed" + [ -z "$OPTARG" ] && $err "empty argument not allowed" case "$option" in d) vdir="$OPTARG" ;; m) mode="$OPTARG" ;; - *) badcmd "invalid option '-$option'" ;; + *) $err "invalid option '-$option'" ;; esac done @@ -84,9 +90,8 @@ mkrelease() build_release() { - _xm="build_release $vdir" ( - cd "$srcdir" || $err "$_xm: !cd \"$srcdir\"" + cd "$srcdir" || $err "$vdir: !cd \"$srcdir\"" fetch_trees x_ mv src/docs docs ) || $err "can't create release files" @@ -96,18 +101,18 @@ build_release() rm -f "$srcdir/lock" || $err "can't remove lock file in $srcdir" ( - cd "${srcdir%/*}" || $err "$_xm: mktarball \"$srcdir\"" - mktarball "${srcdir##*/}" "${srcdir##*/}.tar.xz" || $err "$_xm: mksrc" + cd "${srcdir%/*}" || $err "$vdir: mktarball \"$srcdir\"" + mktarball "${srcdir##*/}" "${srcdir##*/}.tar.xz" || $err "$vdir: mksrc" ) || $err "can't create src tarball" [ "$mode" = "src" ] && return 0 touch "$srcdir/lock" || $err "can't make lock file in $srcdir/" ( - cd "$srcdir" || $err "$_xm: 2 !cd \"$srcdir\"" - ./build roms all || $err "$_xm: roms-all" - ./build roms serprog rp2040 || $err "$_xm: rp2040" - ./build roms serprog stm32 || $err "$_xm: stm32" + cd "$srcdir" || $err "$vdir: 2 !cd \"$srcdir\"" + ./build roms all || $err "$vdir: roms-all" + ./build roms serprog rp2040 || $err "$vdir: rp2040" + ./build roms serprog stm32 || $err "$vdir: stm32" x_ mv bin ../roms ) || $err "can't build rom images" @@ -117,7 +122,7 @@ build_release() fetch_trees() { for x in $(ls -1 config/git); do - ./update trees -f "$x" || $err "$_xm: fetch $x" + ./update trees -f "$x" || $err "$vdir: fetch $x" singletree "$x" || x_ rm -Rf "src/$x/$x" done rmgit . @@ -125,16 +130,16 @@ fetch_trees() fail() { - tmp_cleanup || printf "WARNING: can't rm tmpfiles: %s\n" "$tmpdir" 1>&2 + tmp_cleanup || printf "WARNING: can't rm tmpfiles: %s\n" "$TMPDIR" 1>&2 err_ "${1}" } tmp_cleanup() { - [ "$tmpdir_was_set" = "n" ] || return 0 - rm -Rf "$tmpdir" || return 1 + [ "$xbmk_parent" = "y" ] || return 0 + [ "$TMPDIR" = "/tmp" ] || rm -Rf "$TMPDIR" || return 1 rm -f lock || return 1 } main $@ -tmp_cleanup || err_ "can't rm tmpdir upon non-zero exit: $tmpdir" +tmp_cleanup || err_ "can't rm TMPDIR upon non-zero exit: $TMPDIR" |