#!/bin/bash
#
# (c) 2004-2100 ;)
# Author: cutmasta AT netline-is D0T de
# "Jus7 s0m3 l4m3 b4sh Pr0n"
# 
#
# This Script adds a LDAP Group 
# The First Group in ldap must be "users" if not already 
# set by the initial ldap.ldif file!
#
# GLOBAL CONFIGFILE
prefix=/usr
exec_prefix=${prefix}

GLOBAL_CONF="/etc/open-xchange/admintools.conf"

if [ -f $GLOBAL_CONF ]
    then
    . $GLOBAL_CONF
    else
    echo "Config File $GLOBAL_CONF not found."
    exit 0
fi

ac_prev=
for ac_option
do 
  if test -n "$ac_prev"; then
    eval "$ac_prev=\$ac_option"
    ac_prev=
    continue
  fi
  case "$ac_option" in
      -*=*) ac_optarg=`echo "$ac_option" | $SED_BIN 's/[-_a-zA-Z0-9]*=//'` ;;
      *) ac_optarg= ;;
  esac
  
  case "$ac_option" in
      
      --group)
	  ac_prev=group ;;
      --group=*) 
	  GROUPNAME=$ac_optarg ;;

      -help | --help | -? | --?)
	  
	  cat <<EOF

Usage: $0 [Options]

Attention: The 1st Group must be "users" !

Options:
  --group=NAME                  The new Group Name - eg. Development

EOF
	  exit 0
	  
	  ;;
      
      *)    
	  echo "Unknown command $ac_option"
	  echo "Try $0 --help"
	  exit 1
	  ;;
  esac
  
done

ERROR=

if [ "$GROUPNAME" = "" ]
then
        ERROR="y"
        echo "Specify a Group Name!"
fi


if [ "$ERROR" = "y" ]
then 
	echo "Please provide a Group Name!"
	echo "Try $0 --help"
	exit 0 ;
fi


CURRENT_GID=`$LDAPSEARCH_BIN $LDAPCONN -b $GROUP_BASEDN "(cn=*)" gidNumber | $GREP_BIN gidNumber | $SED_BIN -e 's/^gidNumber://' | $SORT_BIN -nr | $HEAD_BIN -n 1 | $AWK_BIN {'print $1'}`

if [ "$CURRENT_GID" = "#" ]
then
    CURRENT_GID=$MIN_GID
else
    CURRENT_GID=`$EXPR_BIN $CURRENT_GID + 1`
fi 


echo "dn: cn=$GROUPNAME,$GROUP_BASEDN" > $TMPDIF
echo "objectClass: top" >> $TMPDIF
echo "objectClass: posixGroup" >> $TMPDIF
echo "cn: $GROUPNAME" >> $TMPDIF
echo "userPassword: {crypt}*" >> $TMPDIF
echo "gidNumber: $CURRENT_GID" >> $TMPDIF


LDAP_INSERT=`$LDAPADD_BIN $LDAPCONN -f $TMPDIF 2>&1 | $GREP_BIN 68`

if [ "$LDAP_INSERT" = "" ]
then
    echo "Added Group $GROUPNAME to LDAP"
else
    echo "Groupname already exists in LDAP"
    echo "Exiting now!"
    exit 0
fi

rm $TMPDIF
