blob: 2e4661cd568e5ce9405250817ac2e9a24bbe9c94 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# 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
# <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=
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
)<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
cd ../
printf '%s' "incoming/${changes}"
}
|