diff options
-rw-r--r-- | lib/cmd/include.sh | 121 |
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() |