From e206c6620ac6c3f2fd01dd2d1b1390e6e262cd8f Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Tue, 06 Mar 2012 13:39:44 -0500 Subject: Rename all source files. --- (limited to 'src/oh-buildopk.sh') diff --git a/src/oh-buildopk.sh b/src/oh-buildopk.sh new file mode 100644 index 0000000..1855173 --- /dev/null +++ b/src/oh-buildopk.sh @@ -0,0 +1,105 @@ +#! /bin/sh +# +# opkhelper +# src/oh-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 . + +. @@LIBDIR@@/opkhelper/controlfields +. @@LIBDIR@@/opkhelper/architecture + +print_usage() +{ + printf 'Usage: %s -s | pkgname...\n' "$1" +} + +opts=$(getopt -n "${0}" -o 's' -- "${@}") +if [ ${?} -ne 0 ]; then + print_usage "${0}" >&2 + exit 1; +fi +eval set -- "${opts}" +while true; do + case "${1}" in + -s) + is_srcpkg=true + shift + ;; + --) + shift + break + ;; + *) + print_usage "${0}" >&2 + exit 1 + ;; + esac +done + +if [ -n "${is_srcpkg}" ]; then + pkg="${OH_SRCPKG}-src" + + # Write debian-binary. + echo '2.0' > debian-binary || exit 2 + + # Pack data.tar.gz. + cd ${pkg}.data + tar -czf ../data.tar.gz . || exit 2 + cd .. + + # Pack control.tar.gz. + cd ${pkg}.control + tar -czf ../control.tar.gz . || exit 2 + cd .. + + # Pack opk file. + tar -czf ../../${pkg}_${OH_PKGVER}_all.opk \ + debian-binary data.tar.gz control.tar.gz || exit 2 + rm -Rf debian-binary control data.tar.gz control.tar.gz || exit 2 +else + if [ ${#} -eq 0 ]; then + print_usage ${0} >&2 + exit 1 + fi + + # Iterate over packages. + while [ ${#} -gt 0 ]; do + printf 'oh-buildopk: Packing package "%s"...\n' "${1}" + + arch="$(oh_get_package_architecture ${1})" + + # Write debian-binary. + echo '2.0' > debian-binary || exit 2 + + # Pack data.tar.gz. + cd ${1}.data + tar -czf ../data.tar.gz . || exit 2 + cd .. + + # Pack control.tar.gz. + cd ${1}.control + tar -czf ../control.tar.gz . || exit 2 + cd .. + + # Pack opk file. + tar -czf ../../${1}_${OH_PKGVER}_${arch}.opk \ + debian-binary data.tar.gz control.tar.gz || exit 2 + rm -Rf debian-binary control data.tar.gz control.tar.gz || exit 2 + + shift + done +fi -- cgit v0.9.1