summaryrefslogtreecommitdiffstats
path: root/lib/cmd
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2013-07-16 16:04:39 (EDT)
committer P. J. McDermott <pjm@nac.net>2013-07-16 16:04:39 (EDT)
commit856a4d0f3625281686a05dc7b51db38ec29d4138 (patch)
treec8c220e8d3a4950dd08c71fe77bace7c67392215 /lib/cmd
parenta1687c92dc693d4a1931d02ae546bd27203eb647 (diff)
include: Refactor.
Diffstat (limited to 'lib/cmd')
-rw-r--r--lib/cmd/include.sh87
1 files changed, 45 insertions, 42 deletions
diff --git a/lib/cmd/include.sh b/lib/cmd/include.sh
index aa8d16b..44cedf1 100644
--- a/lib/cmd/include.sh
+++ b/lib/cmd/include.sh
@@ -31,16 +31,18 @@ cmd_include_main()
{
local archive=
local changes=
+ local component=
+ local suite=
+ local source_l=
+ local pool_dir=
+ local pool_dist_db=
+ local feeds=
local size=
local file=
local pkg=
local binver=
local arch=
local plat=
- local component=
- local source_l=
- local pool_dir=
- local pool_dist_db=
local feed=
archive='archive'
@@ -48,53 +50,54 @@ cmd_include_main()
for changes in "${@}"; do
parse_control "${changes}" cmd_include_changes_field \
"${CMD_INCLUDE_CHANGES_FIELDS}" ''
- done
-
- printf 'Including %s (%s) into %s:\n' "${cmd_include_source}" \
- "${cmd_include_version}" "${cmd_include_distribution}"
-
- while read -r size file; do
- if [ "x$(echo ${file})" = 'x' ]; then
- continue
- fi
- IFS='_' read -r pkg binver arch plat <<-EOF
- ${file%.opk}
- EOF
- printf ' %s:\n' "${file}"
- printf ' Package: %s\n' "${pkg}"
- printf ' Version: %s\n' "${binver}"
- printf ' Architecture: %s\n' "${arch}"
- printf ' Platform: %s\n' "${plat}"
- printf ' Size: %s\n' "${size}"
component='main'
+ suite="${conf_incoming_channel}/${cmd_include_distribution}"
source_l="$(printf '%s\n' "${cmd_include_source}" | \
sed 's/\(.\).*/\1/')"
pool_dir="pool/${component}/${source_l}/${cmd_include_source}"
pool_dist_db="${archive}/${pool_dir}/.db"
pool_dist_db="${pool_dist_db}/${cmd_include_distribution}"
+ feeds=''
mkdir -p "${pool_dist_db}"
printf '%s\n' "${cmd_include_version}" \
>"${pool_dist_db}/version"
- printf '%s\n' "${pool_dir}/${file}" \
- >>"${pool_dist_db}/files"
- cp -p "$(dirname "${changes}")/${file}" \
- "${archive}/${pool_dir}/${file}"
- feed="${conf_incoming_channel}/${cmd_include_distribution}"
- feed="${feed}/${component}/${plat}/${arch}"
- mkdir -p "${archive}/dists/${feed}/.db/"
- printf '%s\n' "${plat}/${arch}" \
- >>"${pool_dist_db}/feeds"
- tar -xzOf "${archive}/${pool_dir}/${file}" 'control.tar.gz' | \
- tar -xzO './control' \
- >"${archive}/dists/${feed}/.db/${pkg}.control"
- printf 'Filename: %s\nSize: %s\nMD5sum: %s\n' \
- "../../../../../../${pool_dir}/${file}" "${size}" \
- "$(md5sum "$(dirname "${changes}")/${file}" | \
- sed 's/ .*$//')" \
- >>"${archive}/dists/${feed}/.db/${pkg}.control"
- done <<-EOF
- ${cmd_include_files}
- EOF
+ printf 'Including %s (%s) into %s:\n' "${cmd_include_source}" \
+ "${cmd_include_version}" "${cmd_include_distribution}"
+ while read -r size file; do
+ if [ "x$(echo ${file})" = 'x' ]; then
+ continue
+ fi
+ IFS='_' read -r pkg binver arch plat <<-EOF
+ ${file%.opk}
+ EOF
+ printf ' %s:\n' "${file}"
+ printf ' Package: %s\n' "${pkg}"
+ printf ' Version: %s\n' "${binver}"
+ printf ' Architecture: %s\n' "${arch}"
+ printf ' Platform: %s\n' "${plat}"
+ printf ' Size: %s\n' "${size}"
+ printf '%s\n' "${pool_dir}/${file}" \
+ >>"${pool_dist_db}/files"
+ cp -p "$(dirname "${changes}")/${file}" \
+ "${archive}/${pool_dir}/${file}"
+ feed="${suite}/${component}/${plat}/${arch}"
+ mkdir -p "${archive}/dists/${feed}/.db/"
+ feeds="${feeds}${plat}/${arch}${LF}"
+ tar -xzOf "${archive}/${pool_dir}/${file}" \
+ 'control.tar.gz' | tar -xzO './control' \
+ >"${archive}/dists/${feed}/.db/${pkg}.control"
+ printf 'Filename: %s\nSize: %s\nMD5sum: %s\n' \
+ "../../../../../../${pool_dir}/${file}" \
+ "${size}" \
+ "$(md5sum "$(dirname "${changes}")/${file}" | \
+ sed 's/ .*$//')" \
+ >>"${archive}/dists/${feed}/.db/${pkg}.control"
+ done <<-EOF
+ ${cmd_include_files}
+ EOF
+ printf '%s' "${feeds}" | LC_COLLATE='C' sort | uniq \
+ >"${pool_dist_db}/feeds"
+ done
}
cmd_include_changes_field()