commit: 1e09cba657ccb2b8e6fbcbeb28c5c593da2127eb Author: Gary Macindoe <gary <AT> garymacindoe <DOT> co <DOT> uk> AuthorDate: Thu Sep 28 21:32:34 2017 +0000 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org> CommitDate: Fri Jan 5 13:13:40 2018 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1e09cba6
Fix handling of multiple CDs Closes: https://github.com/gentoo/gentoo/pull/5818 eclass/cdrom.eclass | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/eclass/cdrom.eclass b/eclass/cdrom.eclass index 47e2c6342e0..7b0eb9c6c3b 100644 --- a/eclass/cdrom.eclass +++ b/eclass/cdrom.eclass @@ -71,7 +71,12 @@ fi # eclass, see that function's description. cdrom_get_cds() { unset CDROM_SET - export CDROM_CURRENT_CD=0 CDROM_CHECKS=( "${@}" ) + export CDROM_CURRENT_CD=0 + export CDROM_NUM_CDS="${#}" + local i + for i in $(seq ${#}); do + export CDROM_CHECK_${i}="${!i}" + done # If the user has set CD_ROOT or CD_ROOT_1, don't bother informing # them about which discs are needed as they presumably already know. @@ -190,7 +195,8 @@ cdrom_load_next_cd() { local i cdset : CD_ROOT_${CDROM_CURRENT_CD} export CDROM_ROOT=${CD_ROOT:-${!_}} - IFS=: read -r -a cdset -d "" <<< "${CDROM_CHECKS[$((${CDROM_CURRENT_CD} - 1))]}" + local var="CDROM_CHECK_${CDROM_CURRENT_CD}" + IFS=: read -r -a cdset -d "" <<< "${!var}" for i in $(seq ${CDROM_SET:-0} ${CDROM_SET:-$((${#cdset[@]} - 1))}); do local f=${cdset[${i}]} point= node= fs= opts= @@ -222,7 +228,7 @@ cdrom_load_next_cd() { fi if [[ ${showedmsg} -eq 0 ]] ; then - if [[ ${#CDROM_CHECKS[@]} -eq 1 ]] ; then + if [[ ${CDROM_NUM_CDS} -eq 1 ]] ; then einfo "Please insert+mount the ${CDROM_NAME:-CD for ${PN}} now !" else local var="CDROM_NAME_${CDROM_CURRENT_CD}"
