#!/bin/sh

REQUESTOR="$1"
GROUP="$2"
MEMBER="$3"
test -z "$MEMBER" && \
  echo "Usage: groups-setresp requestor groupname member [groupfile]" 1>&2 && exit 1

GROUPFILE="$4"
test -z "$GROUPFILE" && GROUPFILE=./test

! grep -q "^$GROUP:" "$GROUPFILE" && \
  echo "Error: no such group: $GROUP" 1>&2 && exit 1

echo "$MEMBER" | grep -qvx '[a-z][a-z0-9]*' && \
  echo "Error: invalid member name: $MEMBER" 1>&2 && exit 1

! grep -q "^$GROUP:.*\<$MEMBER\>" "$GROUPFILE" && \
  echo "Error: $MEMBER not member of $GROUP" 1>&2 && exit 1

grep -q "^$GROUP:x:[0-9]*:$MEMBER\>" "$GROUPFILE" && \
  echo "Error: $MEMBER is already the person responsible for $GROUP" 1>&2 && exit 1

sed -i.bak -e "/^$GROUP:/{;s/,$MEMBER\>//;s/:/:$MEMBER,/3;}" "$GROUPFILE"
echo "Set $MEMBER as the person responsible for group $GROUP for $REQUESTOR"

