#!@SH@ # # opkhelper # src/oh-installfiles.sh # Install files into a binary package staging area. # # Copyright (C) 2012 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 2 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 . . '@pkgdatadir@/load.sm' CR=' ' main() { dir='dest' oh_init while getopts 'd:' opt; do case "${opt}" in d) dir="${OPTARG}" ;; ?) oh_error "$(oh_get_msg 'bad_opt')" exit 1 ;; esac done for pkg in ${OPK_PACKAGES}; do [ -r "../${pkg}.pkg/files" ] || continue oh_info "$(oh_get_msg 'installing_files')" "${pkg}" mkdir -p "${pkg}.data" chmod 755 "${pkg}.data" while IFS="${CR}" read -r pattern; do for file in "${dir}/"${pattern}; do [ -e "${file}" -o -L "${file}" ] || continue file="${file#${dir}}" mkdir -p "${pkg}.data/${file%/?*}" # TODO: If file, ln file. If dir, recursively # mkdir and ln. mv "${PWD}/${dir}/${file}" "${pkg}.data/${file}" done done <"../${pkg}.pkg/files" done # TODO: See above. Count links. if [ "$(find "${dir}" -type f | wc -l)" -gt 0 ]; then oh_warn "$(oh_get_msg 'files_not_installed')" fi } main "${@}"