#!/usr/bin/env sh # helper script: generate release archive (ROM images) # # Copyright (C) 2020,2021,2022,2023 Leah Rowe # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e projectname="$(cat projectname)" version="version-unknown" versiondate="version-date-unknown" cbtree="default" target="" ifdtool="cbutils/${cbtree}/ifdtool" cbfstool="cbutils/${cbtree}/cbfstool" main() { printf "Building ROM image archives for version %s\n" "${version}" init_check for romdir in bin/*; do make_archive "${romdir}" done printf "\nROM archives available at release/%s/roms/\n\n" "${version}" } init_check() { [ -f version ] && \ version="$(cat version)" [ -f versiondate ] && \ versiondate="$(cat versiondate)" [ ! -d "bin/" ] && \ err "no ROMs built yet. exiting" [ ! -d "release/" ] && \ mkdir -p release/ [ ! -d "release/${version}/" ] && \ mkdir -p "release/${version}/" [ -d "release/${version}/roms/" ] && \ rm -Rf "release/${version}/roms/" [ ! -d "release/${version}/roms/" ] && \ mkdir -p "release/${version}/roms/" } make_archive() { romdir=${1} target="${romdir##*/}" echo ${target} if [ ! -d "${romdir}/" ]; then continue fi printf "Generating release/%s/roms/%s-%s_%s.tar.xz\n" \ "${version}" "${projectname}" \ "${version}" "${target##*/}" printf "%s\n" "${version}" > "${romdir}/version" printf "%s\n" "${versiondate}" > "${romdir}/versiondate" printf "%s\n" "${projectname}" > "${romdir}/projectname" f="release/${version}/roms/${projectname}-${version}_${target##*/}" tar -c "${romdir}/" | xz -9e > "${f}.tar.xz" if [ -d "${romdir}_tmp" ] then rm -Rf "${romdir}" mv "${romdir}_tmp" "${romdir}" fi } err() { printf "%s: %s\n" $0 $1 exit 1 } main $@