diff options
Diffstat (limited to 'lib/cmd')
-rw-r--r-- | lib/cmd/include.sh | 87 |
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() |