# Copyright (C) 2017 Patrick McDermott # # 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 # . 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= mkdir -p incoming/ cd incoming/ # 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 ) 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" Changed-By: "J. Random Hacker" 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 cd ../ printf '%s' "incoming/${changes}" }