summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/cmd/include.sh121
1 files changed, 64 insertions, 57 deletions
diff --git a/lib/cmd/include.sh b/lib/cmd/include.sh
index 9c1b8f0..a6dd05c 100644
--- a/lib/cmd/include.sh
+++ b/lib/cmd/include.sh
@@ -29,8 +29,17 @@ cmd_include_files=
cmd_include_main()
{
- local archive=
local changes=
+
+ for changes in "${@}"; do
+ cmd_include "${changes}"
+ done
+}
+
+cmd_include()
+{
+ local changes="${1}"
+ local archive=
local component=
local suite=
local source_l=
@@ -47,64 +56,62 @@ cmd_include_main()
archive='archive'
- for changes in "${@}"; do
- parse_control "${changes}" cmd_include_changes_field \
- "${CMD_INCLUDE_CHANGES_FIELDS}" ''
- 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=''
- if [ -f "${pool_dist_db}/version" \
- -a "x$(cat "${pool_dist_db}/version")" \
- != "x${cmd_include_version}" ]; then
- # TODO: Remove ":" when cmd_remove is implemented.
- : cmd_remove "${cmd_include_distribution}" \
- "${cmd_include_source}"
+ parse_control "${changes}" cmd_include_changes_field \
+ "${CMD_INCLUDE_CHANGES_FIELDS}" ''
+ 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=''
+ if [ -f "${pool_dist_db}/version" \
+ -a "x$(cat "${pool_dist_db}/version")" \
+ != "x${cmd_include_version}" ]; then
+ # TODO: Remove ":" when cmd_remove is implemented.
+ : cmd_remove "${cmd_include_distribution}" \
+ "${cmd_include_source}"
+ fi
+ mkdir -p "${pool_dist_db}"
+ printf '%s\n' "${cmd_include_version}" \
+ >"${pool_dist_db}/version"
+ 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
- mkdir -p "${pool_dist_db}"
- printf '%s\n' "${cmd_include_version}" \
- >"${pool_dist_db}/version"
- 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}
+ IFS='_' read -r pkg binver arch plat <<-EOF
+ ${file%.opk}
EOF
- printf '%s' "${feeds}" | LC_COLLATE='C' sort | uniq \
- >"${pool_dist_db}/feeds"
- done
+ 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"
}
cmd_include_changes_field()