# 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=
# 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
printf '%s' "${changes}"
}