diff options
-rw-r--r-- | tests/aux/opk.sh | 87 | ||||
-rw-r--r-- | tests/local.mk | 3 |
2 files changed, 89 insertions, 1 deletions
diff --git a/tests/aux/opk.sh b/tests/aux/opk.sh new file mode 100644 index 0000000..a74ecfd --- /dev/null +++ b/tests/aux/opk.sh @@ -0,0 +1,87 @@ +# This file is part of the ProteanOS Archive Manager. +# +# The ProteanOS Archive Manager 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. +# +# The ProteanOS Archive Manager 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 the ProteanOS Archive Manager. If not, see +# <http://www.gnu.org/licenses/>. + +make_opks_and_changes() +{ + local src="${1}" + local bins="${2}" + local ver="${3}" + local arch="${4}" + local plat="${5}" + local dist="${6}" + local sect="${7}" + shift 7 + local bin= + local changes= + local file= + + # Make packages. + for bin in ${bins}; do + mkdir -p "${bin}_${ver}_${arch}_${plat}/control/" + cat >"${bin}_${ver}_${arch}_${plat}/control/control" <<-EOF + Package: ${bin} + Source: ${src} + Version: ${ver} + Architecture: ${arch} + Platform: ${plat} + Maintainer: "J. Random Hacker" $(: Newline + )<jrandom@example.com> + EOF + (cd "${bin}_${ver}_${arch}_${plat}/control/" && \ + tar -czf '../control.tar.gz' '.') + rm -f "${bin}_${ver}_${arch}_${plat}/control/control" + rmdir "${bin}_${ver}_${arch}_${plat}/control/" + (cd "${bin}_${ver}_${arch}_${plat}/" && \ + tar -czf "../${bin}_${ver}_${arch}_${plat}.opk" \ + 'control.tar.gz') + rm -f "${bin}_${ver}_${arch}_${plat}/control.tar.gz" + rmdir "${bin}_${ver}_${arch}_${plat}/" + done + + # Write changes file. + changes="${src}_${ver}_${arch}_${plat}.changes" + cat >"${changes}" <<-EOF + Format: 1.0 + Source: ${src} + Binary: ${bins} + Version: ${ver} + Architecture: ${arch} + Platform: ${plat} + Distribution: ${dist} + Maintainer: "J. Random Hacker" <jrandom@example.com> + Changed-By: "J. Random Hacker" <jrandom@example.com> + Date: $(LC_ALL='POSIX' date '+%a, %d %b %Y %H:%M:%S %z') + Description: + EOF + for bin in ${bins}; do + printf ' %s - %s package\n' "${bin}" "${bin}" \ + >>"${changes}" + done + cat >>"${changes}" <<-EOF + Changes: + ${src} (${ver}) ${dist} + . + * Reticulated splines. + Files: + EOF + for bin in ${bins}; do + file="${bin}_${ver}_${arch}_${plat}.opk" + printf ' %s %s %s\n' $(wc -c "${file}" | cut -d ' ' -f 1) \ + "${sect}" "${file}" >>"${changes}" + done + + printf '%s' "${changes}" +} diff --git a/tests/local.mk b/tests/local.mk index f633b44..d5a9f25 100644 --- a/tests/local.mk +++ b/tests/local.mk @@ -2,4 +2,5 @@ TESTS = \ %reldir%/version.sh EXTRA_DIST += \ - tests/aux/init.sh + tests/aux/init.sh \ + tests/aux/opk.sh |