+
+ # now we'll handle some fringe cases where irregular df -hT output shows /dev/disk/.. instead of
+ # /dev/h|sdxy type data for column 1, . A_PARTITION_DATA[6]
+ for (( i=0; i < ${#A_PARTITION_DATA[@]}; i++ ))
+ do
+ IFS=","
+ a_partition_working=( ${A_PARTITION_DATA[i]} )
+ IFS="$ORIGINAL_IFS"
+ dev_item='' # reset each loop
+ # note: for swap this will already be set
+ if [[ -n $( grep -E '(by-uuid|by-label)' <<< ${a_partition_working[6]} ) ]];then
+ if [[ -n $DEV_DISK_UUID ]];then
+ dev_item=$( echo "$DEV_DISK_UUID" | gawk '
+ /'$( basename ${a_partition_working[6]} )'/ {
+ item=gensub( /..\/..\/(.+)/, "\\1", 1, $NF )
+ print item
+ }' )
+ fi
+ # if we didn't find anything for uuid try label
+ if [[ -z $dev_item && -n $DEV_DISK_LABEL ]];then
+ dev_item=$( echo "$DEV_DISK_LABEL" | gawk '
+ /'$( basename ${a_partition_working[6]} )'/ {
+ item=gensub( /..\/..\/(.+)/, "\\1", 1, $NF )
+ print item
+ }' )
+ fi
+ if [[ -n $dev_item ]];then
+ # assemble everything we could get for dev/h/dx, label, and uuid
+ IFS=","
+ A_PARTITION_DATA[i]=${a_partition_working[0]}","${a_partition_working[1]}","${a_partition_working[2]}","${a_partition_working[3]}","${a_partition_working[4]}","${a_partition_working[5]}","$dev_item
+ IFS="$ORIGINAL_IFS"
+ fi
+ fi
+ done