user.eclass: Fix egetgroups bash compliance, and make it simpler
authorMichał Górny <mgorny@gentoo.org>
Thu, 25 Jul 2019 07:54:54 +0000 (09:54 +0200)
committerMichał Górny <mgorny@gentoo.org>
Sat, 27 Jul 2019 09:49:04 +0000 (11:49 +0200)
Signed-off-by: Michał Górny <mgorny@gentoo.org>
eclass/user.eclass

index fdf98caa6099196d9c3688b8f0920fcf3d5622eb..9dc15fa75d23da510ae0b3e7c485802582199930 100644 (file)
@@ -445,11 +445,12 @@ egetgroups() {
        local egroups_arr
        read -r -a egroups_arr < <(id -G -n "$1")
 
-       local defgroup=${egroups_arr[0]}
+       local g groups=${egroups_arr[0]}
        # sort supplementary groups to make comparison possible
-       readarray -t exgroups_arr < <(printf '%s\n' "${egroups_arr[@]:1}" | sort)
-       local exgroups=${exgroups_arr[*]}
-       echo "${defgroup}${exgroups:+,${exgroups// /,}}"
+       while read -r g; do
+               [[ -n ${g} ]] && groups+=",${g}"
+       done < <(printf '%s\n' "${egroups_arr[@]:1}" | sort)
+       echo "${groups}"
 }
 
 # @FUNCTION: esethome