summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2012-10-03 18:47:03 (EDT)
committer P. J. McDermott <pjm@nac.net>2012-10-03 18:47:03 (EDT)
commit88f867d9995be83eb6e95d44b6ab3dd2e9aca8f2 (patch)
treed818653438075fba171940a00a9f0eb6cddfae8e
parent8d2c8338e4aca24c2e97d70a068a635cbbc6374a (diff)
Implement ob-buildopk.
-rw-r--r--src/Makefile.in4
-rw-r--r--src/ob-buildopk.sh58
2 files changed, 60 insertions, 2 deletions
diff --git a/src/Makefile.in b/src/Makefile.in
index c90078d..a5a1264 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -43,8 +43,8 @@ SRCS = opkbuild.sh \
ob-applypatches.sh \
ob-installplatconf.sh \
ob-installdocs.sh \
- ob-gencontrol.sh #\
- ob-buildopk.sh \
+ ob-gencontrol.sh \
+ ob-buildopk.sh #\
ob-genchanges.sh
OBJS = $(SRCS:.sh=)
diff --git a/src/ob-buildopk.sh b/src/ob-buildopk.sh
new file mode 100644
index 0000000..a79d37b
--- /dev/null
+++ b/src/ob-buildopk.sh
@@ -0,0 +1,58 @@
+#!@@SH@@
+#
+# opkbuild
+# src/ob-buildopk
+# Pack binary package files into an opk file.
+#
+# Copyright (C) 2012 Patrick "P. J." McDermott
+#
+# 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 <http://www.gnu.org/licenses/>.
+
+. '@@LIBOPKBUILD@@/load.sm'
+
+ob_use locale
+ob_use output
+ob_use package
+
+main()
+{
+ ob_set_text_domain 'opkbuild'
+
+ ob_init_package '..'
+ ob_parse_package_metadata -c '.opkbuild.cache'
+
+ echo '2.0' >debian-binary
+ if [ -n "${OB_DO_SOURCE}" ]; then
+ build_opk "src:${OB_SOURCE}" "${OB_SOURCE_VERSION}"
+ else
+ for pkg in $(ob_get_binary_packages); do
+ build_opk "${pkg}" "${OB_BINARY_VERSION}"
+ done
+ fi
+}
+
+build_opk()
+{
+ binary="${1}"
+ version="${2}"
+
+ (cd ${binary}.data && tar -czf '../data.tar.gz')
+ (cd ${binary}.control && tar -czf '../control.tar.gz')
+
+ tar -czf ../../${binary}_${version}_all.opk \
+ debian-binary data.tar.gz control.tar.gz
+ rm -Rf debian-binary control data.tar.gz control.tar.gz
+}
+
+main "${@}"