roms 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/usr/bin/env bash
  2. #
  3. # helper script: generate release archive (ROM images)
  4. #
  5. # Copyright (C) 2020,2021 Leah Rowe <info@minifree.org>
  6. #
  7. # This program is free software: you can redistribute it and/or modify
  8. # it under the terms of the GNU General Public License as published by
  9. # the Free Software Foundation, either version 3 of the License, or
  10. # (at your option) any later version.
  11. #
  12. # This program is distributed in the hope that it will be useful,
  13. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. # GNU General Public License for more details.
  16. #
  17. # You should have received a copy of the GNU General Public License
  18. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  19. #
  20. # This script assumes that the working directory is the root
  21. # of git or release archive
  22. [ "x${DEBUG+set}" = 'xset' ] && set -v
  23. set -u -e
  24. projectname="$(cat projectname)"
  25. version="version-unknown"
  26. if [ -f version ]; then
  27. version="$(cat version)"
  28. fi
  29. versiondate="version-date-unknown"
  30. if [ -f versiondate ]; then
  31. versiondate="$(cat versiondate)"
  32. fi
  33. if [ ! -d "bin/" ]; then
  34. ./build boot roms all
  35. fi
  36. [ ! -d "release/" ] && \
  37. mkdir -p release/
  38. [ ! -d "release/${version}/" ] && \
  39. mkdir -p "release/${version}/"
  40. [ -d "release/${version}/roms/" ] && \
  41. rm -Rf "release/${version}/roms/"
  42. [ ! -d "release/${version}/roms/" ] && \
  43. mkdir -p "release/${version}/roms/"
  44. printf "Building ROM image archives for version %s\n" "${version}"
  45. (
  46. cd bin/
  47. for target in *; do
  48. if [ ! -d "${target}/" ]; then
  49. continue
  50. fi
  51. printf "Generating release/%s/roms/%s-%s_%s.tar.xz\n" "${version}" "${projectname}" "${version}" "${target##*/}"
  52. printf "%s\n" "${version}" > "${target}/version"
  53. printf "%s\n" "${versiondate}" > "${target}/versiondate"
  54. printf "%s\n" "${projectname}" > "${target}/projectname"
  55. tar -c "${target}/" | xz -9e >"../release/${version}/roms/${projectname}-${version}_${target##*/}.tar.xz"
  56. done
  57. )
  58. printf "\nROM image release archives available at release/%s/roms/\n\n" "${version}"