#!/bin/bash

function Crear_Usuario {
  while ! test -z "${1}" ; do
    USUARIO="${1}"
    PASSWORD="${2}"
    USERID="${3}"
    GPRIMARIO="${4}"
    GRUPOID="${5}"
      # echo "Se va a crear el usuario ${USUARIO} con password ${PASSWORD}"
      if ! ( getent passwd "${USUARIO}" > /dev/null 2> /dev/null ) ; then
        if /usr/sbin/useradd -m -d "/home/${USUARIO}" \
          -s /bin/bash -c "Usuari@ ${USUARIO}" \
          -u "${USERID}" \
          -p "$(printf "${PASSWORD}" | mkpasswd -s -m sha-512)" "${USUARIO}" > /dev/null 2>&1 ; then
          echo "$(date) - Se ha creado el usuario ${USUARIO}" >> "${FICH}"
        fi
      fi
      # Comprobamos la existencia del usuario en el grupo propuesto:
      if ! (getent group "${GPRIMARIO}" > /dev/null 2> /dev/null ) ; then
        groupadd -g "${GRUPOID}" "${GPRIMARIO}" > /dev/null 2>&1
      fi
      if ! ( id "${USUARIO}" | grep -q "${GPRIMARIO}" ) && \
        /usr/sbin/usermod -aG "${GPRIMARIO}" "${USUARIO}" > /dev/null 2>&1 ; then
        echo "$(date) - Se ha añadido al usuario ${USUARIO} al grupo ${GPRIMARIO} ..." >> "${FICH}"
      fi

    shift; shift; shift; shift; shift
  done
}

if ! test -d /var/log/vitalinux ; then
  mkdir -p /var/log/vitalinux
fi
FICH="/var/log/vitalinux/crear_usuarios.log"

if (( ${#} % 5 == 0 )) ; then
	Crear_Usuario $*
else
	echo "Uso: Debes indicar 5 parametros en la llamada, o multiplos de 5 si se quieren crear varios usuarios ..."
	echo "USUARIO PASSWORD USERID GPRIMARIO GRUPOID"
	echo 'Crear_Usuario "USU-1" "password1" "1301" "profesor" "1100"'
    echo 'Crear_Usuario "USU-1" "password1" "1301" "profesor" "1100" \
        "USU-2" "password2" "1302" "profesor" "1100" \
        "USU-3" "password3" "1303" "profesor" "1100"'
fi