# Profile-related functions # # Copyright (C) 2014, 2015 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}" case "${profiles}" in *" ${prof} "*) return 0;; *) return 1;; esac return ${?} } profile_set() { local prof="${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}" 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 select_mirror \ 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