release.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # SPDX-License-Identifier: GPL-3.0-or-later
  2. # Copyright (c) 2023-2025 Leah Rowe <leah@libreboot.org>
  3. eval "`setvars "" vdir src_dirname relsrcdir relmode`"
  4. release()
  5. {
  6. export XBMK_RELEASE="y"
  7. vdir="release"
  8. while getopts d:m: option; do
  9. [ -z "$OPTARG" ] && err "empty argument not allowed"
  10. case "$option" in
  11. d) vdir="$OPTARG" ;;
  12. m) relmode="$OPTARG" ;;
  13. *) err "invalid option '-$option'" ;;
  14. esac
  15. done
  16. vdir="$vdir/$version"
  17. src_dirname="${relname}_src"
  18. relsrcdir="$vdir/$src_dirname"
  19. [ -e "$vdir" ] && err "already exists: \"$vdir\""
  20. x_ mkdir -p "$vdir"
  21. x_ git clone . "$relsrcdir"
  22. x_ touch "$relsrcdir/lock"
  23. build_release
  24. printf "\n\nDONE! Check release files under %s\n" "$vdir"
  25. }
  26. build_release()
  27. {
  28. (
  29. x_ cd "$relsrcdir"
  30. x_ ./mk -f
  31. rmgit .
  32. x_ mv src/docs docs
  33. ) || err "can't create release files"
  34. git log --graph --pretty=format:'%Cred%h%Creset %s %Creset' \
  35. --abbrev-commit > "$relsrcdir/CHANGELOG" || err "!log $relsrcdir"
  36. x_ rm -f "$relsrcdir/lock"
  37. (
  38. x_ cd "${relsrcdir%/*}"
  39. x_ mktarball "${relsrcdir##*/}" "${relsrcdir##*/}.tar.xz"
  40. ) || err "can't create src tarball"
  41. [ "$relmode" = "src" ] && return 0
  42. x_ touch "$relsrcdir/lock"
  43. (
  44. x_ cd "$relsrcdir"
  45. mk -b coreboot pico-serprog stm32-vserprog pcsx-redux
  46. fx_ mkrom_tarball x_ find bin -maxdepth 1 -type d -name "serprog_*"
  47. x_ mv bin ../roms
  48. ) || err "can't build rom images"
  49. x_ rm -Rf "$relsrcdir"
  50. }