#!/bin/bash

domaingroup="domain users"
localgroups="pulse pulse-access"

baseusers="bglug"
domainusers="$(getent group "${domaingroup}" | awk 'BEGIN { FS = ":" } ; { print $4 }' | sed -e 's/,/ /g')"

users="${baseusers} ${domainusers}"

for group in ${localgroups}; do
  actualusers=$(getent group '${group}' | awk 'BEGIN { FS = ":" }; { print $4 }' | sed -e 's/,/ /g')

  # Removing users not in the group
  for user in ${actualusers}; do
    whuser=${user//[[:space:]]/}
    echo "removing ${user}"
    [[ "${users}" =~ "${whuser}" ]] || gpasswd -d "${whuser}" "${group}"
    unset whuser
  done

  # Adding users to group
  for user in ${users}; do
    whuser=${user//[[:space:]]/}
    [[ "${actualusers}" =~ "${whuser}" ]] || gpasswd -a "${whuser}" "${group}"
  done
done