# Profile-related functions # # Copyright (C) 2014, 2015 Patrick 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}" shift 1 case "${_profiles}" in *" ${prof} "*) return 0;; *) return 1;; esac } profile_set() { local prof="${1}" shift 1 if is_profile "${prof}"; then _profile="${prof}" else error "$(get_msg 'profile_not_found')" "${prof}" return 1 fi return 0 } profile_detect() { local root="${1}" shift 1 for prof in ${_profiles}; do if "prof_${prof}_detect_root" "${root}"; then _profile="${prof}" return 0 fi done error "$(get_msg 'profile_not_detected')" "${root}" return 1 } for func in normalize_suite detect_arch default_plat plat_arches select_mirror \ prepare_install installer_type validate_archplat \ opkg_state_dir opkg_conf_file feeds get_cert_url get_root_key \ dep_fields include_pkg get_fstab file_systems_mounted \ bind_mount bind_umount configure_system_native \ configure_system_foreign find_kernel make_initramfs; do eval "profile_${func}() { \"prof_\${_profile}_${func}\" \"\${@}\"; }" done