# Profile-related functions # # Copyright (C) 2014 Patrick "P. J." McDermott # # This file is part of the ProteanOS Development Kit. # # The ProteanOS Development Kit 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. # # The ProteanOS Development Kit 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 the ProteanOS Development Kit. If not, see # . profiles=' ' profile= register_profile() { local profile="${1}" shift 1 profiles="${profiles}${profile} " return 0 } is_profile() { local prof="${1}" [ "x${profiles# ${prof} }" != "x${profiles}" ] } profile_set() { local prof="${1}" if is_profile "${prof}"; then profile="${prof}" use "profile/${profile}" else error 1 "$(get_msg 'profile_not_found')" "${prof}" fi return 0 } profile_normalize_suite() { local suite="${1}" "prof_${profile}_normalize_suite" "${suite}" } profile_detect_arch() { "prof_${profile}_detect_arch" } profile_default_plat() { "prof_${profile}_default_plat" } profile_select_mirror() { "prof_${profile}_select_mirror" } profile_validate_archplat() { local mirror="${1}" local arch="${2}" local plat="${3}" local suite="${4}" "prof_${profile}_validate_archplat" "${mirror}" "${arch}" "${plat}" \ "${suite}" } profile_feeds() { local mirror="${1}" local arch="${2}" local plat="${3}" local suite="${4}" "prof_${profile}_feeds" "${mirror}" "${arch}" "${plat}" "${suite}" } profile_dep_fields() { "prof_${profile}_dep_fields" } profile_include_pkg() { local name="${1}" local value="${2}" "prof_${profile}_include_pkg" "${name}" "${value}" } profile_get_fstab() { local arch="${1}" local plat="${2}" "prof_${profile}_get_fstab" "${arch}" "${plat}" } profile_file_systems_mounted() { local root="${1}" local arch="${1}" local plat="${2}" "prof_${profile}_file_systems_mounted" "${root}" "${arch}" "${plat}" } profile_bind_mount() { local arch="${1}" local plat="${2}" local olddir="${3}" local newdir="${4}" "prof_${profile}_bind_mount" "${arch}" "${plat}" \ "${olddir}" "${newdir}" } profile_bind_umount() { local arch="${1}" local plat="${2}" local olddir="${3}" local newdir="${4}" "prof_${profile}_bind_umount" "${arch}" "${plat}" \ "${olddir}" "${newdir}" } profile_configure_system_native() { local root="${1}" local arch="${2}" local plat="${3}" "prof_${profile}_configure_system_native" "${root}" "${arch}" "${plat}" } profile_configure_system_foreign() { local root="${1}" local arch="${2}" local plat="${3}" "prof_${profile}_configure_system_foreign" "${root}" "${arch}" "${plat}" }