---
 eclass/alternatives-2.eclass | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/eclass/alternatives-2.eclass b/eclass/alternatives-2.eclass
index e15edfa..d9896f1 100644
--- a/eclass/alternatives-2.eclass
+++ b/eclass/alternatives-2.eclass
@@ -57,22 +57,26 @@ alternatives_for() {
        local alternative=${1} provider=${2} importance=${3} index src target 
ret=0
        shift 3
 
-       # make sure importance is a signed integer
+       # Make sure importance is a signed integer
        if [[ -n ${importance} ]] && ! [[ ${importance} =~ ^[0-9]+(\.[0-9]+)*$ 
]]; then
                eerror "Invalid importance (${importance}) detected"
                ((ret++))
        fi
 
+       # Create alternative provider subdirectories under ALTERNATIVES_DIR if 
needed
        [[ -d "${ED}${ALTERNATIVES_DIR}/${alternative}/${provider}" ]] || dodir 
"${ALTERNATIVES_DIR}/${alternative}/${provider}"
 
-       # keep track of provided alternatives for use in pkg_{postinst,prerm}. 
keep a mapping between importance and
-       # provided alternatives and make sure the former is set to only one 
value
+       # Keep track of provided alternatives for use in pkg_{postinst,prerm}.
+       # Keep a mapping between importance and provided alternatives
+       # and make sure the former is set to only one value.
        if ! has "${alternative}:${provider}" "${ALTERNATIVES_PROVIDED[@]}"; 
then
+               # Add new provider and set its importance
                index=${#ALTERNATIVES_PROVIDED[@]}
                ALTERNATIVES_PROVIDED+=( "${alternative}:${provider}" )
                ALTERNATIVES_IMPORTANCE[index]=${importance}
                [[ -n ${importance} ]] && echo "${importance}" > 
"${ED}${ALTERNATIVES_DIR}/${alternative}/${provider}/_importance"
        else
+               # Set importance for existing provider
                for((index=0;index<${#ALTERNATIVES_PROVIDED[@]};index++)); do
                        if [[ ${alternative}:${provider} == 
${ALTERNATIVES_PROVIDED[index]} ]]; then
                                if [[ -n ${ALTERNATIVES_IMPORTANCE[index]} ]]; 
then
@@ -88,6 +92,7 @@ alternatives_for() {
                done
        fi
 
+       # Process source-target pairs
        while (( $# >= 2 )); do
                src=${1//+(\/)/\/}; target=${2//+(\/)/\/}
                if [[ ${src} != /* ]]; then
@@ -107,8 +112,9 @@ alternatives_for() {
                        dodir 
"${ALTERNATIVES_DIR}/${alternative}/${provider}${src%/*}"
                        dosym "${reltarget}" 
"${ALTERNATIVES_DIR}/${alternative}/${provider}${src}"
 
-                       # say ${ED}/sbin/init exists and links to /bin/systemd 
(which doesn't exist yet)
-                       # the -e test will fail, so check for -L also
+                       # The -e test will fail if existing symlink points to 
non-existing target,
+                       # so check for -L also.
+                       # Say ${ED}/sbin/init exists and links to /bin/systemd 
(which doesn't exist yet).
                        if [[ -e ${ED}${src} || -L ${ED}${src} ]]; then
                                local fulltarget=${target}
                                [[ ${fulltarget} != /* ]] && 
fulltarget=${src%/*}/${fulltarget}
@@ -122,6 +128,7 @@ alternatives_for() {
                shift 2
        done
 
+       # Stop if there were any errors
        [[ ${ret} -eq 0 ]] || die "Errors detected for ${provider}, provided 
for ${alternative}"
 }
 
-- 
1.8.5.3


Reply via email to