summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rwxr-xr-xbuild48
1 files changed, 25 insertions, 23 deletions
diff --git a/build b/build
index 19ed8875..b7af9048 100755
--- a/build
+++ b/build
@@ -16,15 +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"
-linkpath="${0}"
-linkname="${linkpath##*/}"
-
main()
{
- [ $# -lt 1 ] && badcmd
+ [ $# -lt 1 ] && $err "bad command"
spath="script/$1"
for g in "which git" "git config --global user.name" \
@@ -38,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!
@@ -48,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
@@ -57,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
@@ -87,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"
@@ -99,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"
@@ -119,8 +121,8 @@ build_release()
fetch_trees()
{
- for x in $(items config/git); do
- ./update trees -f "$x" || $err "$_xm: fetch $x"
+ for x in $(ls -1 config/git); do
+ ./update trees -f "$x" || $err "$vdir: fetch $x"
singletree "$x" || x_ rm -Rf "src/$x/$x"
done
rmgit .
@@ -128,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"