summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorP. J. McDermott <pj@pehjota.net>2017-07-23 14:45:59 (EDT)
committer P. J. McDermott <pj@pehjota.net>2017-07-23 14:45:59 (EDT)
commit8241b60da1e097019757f7e1dfb201d846eb3efd (patch)
treec2e7b1a699b9b0d4d2033f4c9f031c7c639e0901 /tests
parentab17fc941df45bb54c7820489816515e2ddd46c4 (diff)
tests/aux/opk.sh: New file
Diffstat (limited to 'tests')
-rw-r--r--tests/aux/opk.sh87
-rw-r--r--tests/local.mk3
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