# ProteanOS Development Kit # lib/feed.sh # Functions for handling feed index files # # Copyright (C) 2013 Patrick "P. J." McDermott # # This program 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. # # This program 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 this program. If not, see . [ "x${_FEED_SM+set}" = 'xset' ] && return 0 _FEED_SM=1 use fd feed_download() { local feed_index="${1}" wget -O - "${feed_index}" return 0 } feed_find_pkgs() { local deps_file="${1}" local line= local deps_fd= local pkg= local deps= local all_deps= local dep= local pkgs= local new_deps= fopen "${deps_file}" 'w' deps_fd=${FD} pkg='' all_deps='' IFS='' while read -r line; do unset IFS if [ "x${line}" != 'x' ]; then case "${line}" in 'Package:'*) pkg="${line#Package:}" pkg="${pkg## }" ;; *'Depends:'*) deps="${line#*Depends:}" deps="${deps## }" all_deps="${all_deps}${deps}, " ;; esac else if profile_include_pkg "${pkg}"; then pkgs="${pkgs} ${pkg}" fi new_deps='' IFS=", ${HT}${LF}" for dep in ${all_deps}; do unset IFS # Trim off " |.*$" and " (.*$" (versions and # disjunctions). dep="$(printf '%s ' ${dep} | cut -d ' ' -f 1)" new_deps="${new_deps} ${dep}" done unset IFS printf '%s%s\n' "${pkg}" "${new_deps}" >&${deps_fd} pkg='' all_deps='' fi done unset IFS fclose ${deps_fd} return 0 }