#!/bin/bash
# lastact: arturo@2023-02-23
# desc: Revisamos los lanzadores del Escritorio y los hacemos confiables (trusted) para Lubuntu 22.04

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

# 1) Preparamos la auditoria:
LOG="$(basename "${0}").log"
vx-log_xsession -o "${LOG}"

# 2) Comprobamos si nos pasan como parámetro el usuario del cual extraer el escritorio, sino cogeremos el del usuario gráfico:
USUARIO="${1:-$(vx-usuario-grafico)}"
DIR_DESKTOP="$(vx-xdg-getdir "${USUARIO}" XDG_DESKTOP_DIR)"
[[ ! -d "${DIR_DESKTOP}" ]] && exit 1

# 3) Personalizamos la ejecución del comando gio dependiendo de si el ejecutor es un usuario normal o es el root:
[[ "${USER}" == "root" ]] && COMANDO_GIO="sudo -u ${USUARIO} dbus-launch gio" || COMANDO_GIO="gio"

# 4) Comprobamos la confiabilidad de los lanzadores del Escritorio:
RESTART_DESKTOP="false"
for FICH in "${DIR_DESKTOP}"/*.desktop; do
    chmod +x "${FICH}"
    ${COMANDO_GIO} info "${FICH}" | grep -q "trusted: *true" && continue
    ${COMANDO_GIO} set "${FICH}" metadata::trusted true # && RESTART_DESKTOP="true"
    echo "[$(date)]: Hacemos confiable/trusted ${FICH}"
    LANZADOR="$(basename "${FICH}")"
    cp "${FICH}" "/tmp/"
    rm -f "${FICH}"
    rsync -ah --chown="${USUARIO}" "/tmp/${LANZADOR}" "${FICH}" &&
        rm -f "/tmp/${LANZADOR}"
done

# [[ "${RESTART_DESKTOP}" && "${USER}" != "root" ]] && vx-detectar_gui && vx-pcmanfm-restart
