#!/bin/bash
# Ultima modificación: [arturo@2020-4-1]

# FICHVARS="/etc/default/vx-dga-variables/vx-dga-variables-general.conf"
# [ -f "${FICHVARS}" ] && . "${FICHVARS}"

# FICHFUNCS="/usr/bin/vx-funcs-bash"
# [ -f "${FICHFUNCS}" ] && . "${FICHFUNCS}"

# Declaramos todas las funciones que se definen posteriormente para evitar ejecuciones indeseadas:
declare -a MYFUNCS
MYFUNCS=(
    vx-funcs-limpiar_homes-help
    vx-resetear_navegadores_web_usuarios_especificos
)

# Configuramos el autocomplete:
complete -W "${MYFUNCS[*]}" "$(basename "${0}")"

function vx-funcs-limpiar_homes-help() {
    FICHFUNCS="/usr/bin/vx-funcs-limpiar_homes"
    for FUNCION in $(sed -n "s/^function \(.*\)().*/\1/gp" "${FICHFUNCS}"); do
        [[ "${1}" != "--help" ]] && echo "${FUNCION} --help" && continue
        [[ "${FUNCION}" != "vx-help-funcs-users" ]] &&
            echo ":== Función ${FUNCION} ==:" &&
            "${FUNCION}" --help
        echo "--"
    done
}

function vx-resetear_navegadores_web_usuarios_especificos() {
    AYUDA="# Función: Resetea los navegadores Web de usuarios concretos:"
    AYUDA+="\n# Uso: vx-resetear_navegadores_web_usuarios_especificos [usu1] [usu2] ..."
    AYUDA+="\n# Uso: vx-resetear_navegadores_web_usuarios_especificos profesor dga"
    [ "${1}" == "--help" ] &&
        echo -e "${AYUDA}" && return 0

    [[ "$(whoami)" != "root" ]] &&
        echo "=> Debes ser root para resetear los navegadores Web de usuarios" &&
        return 1

    # Hacemos un bucle con los usuarios pasados como parámetro a la función:
    for USUARIO in ${@}; do
        # Si no existe el usuario pasamos al siguiente:
        FUNCION="Resetear navegadores Web"
        ! genent passwd "${USUARIO}" >/dev/null 2>&1 &&
            {
                echo "=> ${FUNCION}: El usuario \"${USUARIO}\" no existe. Pasamos al siguiente ..." &&
                    continue
            } ||
            echo "=> ${FUNCION} para: \"${USUARIO}\":"

        HOMEUSUARIO="$(getent passwd "${USUARIO}" | cut -d":" -f6)"

        for DIR in ".config/google-chrome" ".mozilla" ".config/chromium"; do
            [ -d "${HOMEUSUARIO}/${DIR}" ] &&
                rm -Rf "${HOMEUSUARIO}/${DIR}" &&
                echo "=> ${FUNCION}: ${HOMEUSUARIO}/${DIR} eliminado"
        done
    done
}

# Comprobamos si los parámetros pasados se corresponden con la llamada a una de las funciones para ejecutarla
# En caso de que el parámetro no sea una de las funciones definidas sólo se quieren importar, no ejecutar
[[ "${MYFUNCS[*]}" =~ "${1} " ]] &&
    "$@" 2>/dev/null
