#!/bin/bash
# lastact: arturo@2022-09-28
# desc: Cati se encarga de copiar los ebooks en formato ZIP al directorio Documentos del usuario gráfico, y lo descomprime.
## En concreto son 6 ebooks: All_About_Us_iPack_{1..6}
## Nosotros nos encargamos de crearle los lanzadores.

PREFIJO="vx-ebook-oxford"
DIR_IN_ESCRITORIO="Ebooks-Oxford"

USUARIO="$(vx-usuario-grafico)"
UIDUSUARIO="$(id -u "${USUARIO}")"
HOMEUSUARIO="$(vx-home-usuario-grafico)"
# Obtenemos información de la ruta de Documentos y Escritorio del usuario gráfico:
FICH_DIRS="${HOMEUSUARIO}/.config/user-dirs.dirs"
[[ -f "${FICH_DIRS}" ]] &&
    echo "=> Usaremos los directorios del usuario indicados en: ${FICH_DIRS}" ||
    {
        echo "=> Problemas para obtener los directorios del usuario indicados en: ${FICH_DIRS}"
        exit 1
    }
DIR_DOCUMETOS_USU="${HOMEUSUARIO}/$(basename "$(crudini --get "${FICH_DIRS}" "" XDG_DOCUMENTS_DIR)" | tr -d "\"")"
DIR_DESKTOP_USU="${HOMEUSUARIO}/$(basename "$(crudini --get "${FICH_DIRS}" "" XDG_DESKTOP_DIR)" | tr -d "\"")"
[[ ! -d "${DIR_DOCUMETOS_USU}" || ! -d "${DIR_DESKTOP_USU}" ]] &&
    {
        echo "=> No se puede averigual el directorio: XDG_DOCUMENTS_DIR"
        exit 1
    }

function crear_lanzador_oxford() {
    EBOOK="${1}"
    FILE_DESKTOP="${2}"
    FILE_EXE="${3}"
    NUMERO="${EBOOK##*_}"
    cat >"${FILE_DESKTOP}" <<EOF
[Desktop Entry]
Encoding=UTF-8
Name=Ebook Oxford ${EBOOK//_/ }
Exec=${FILE_EXE}
Path=$(dirname "${FILE_EXE}")
Icon=ingles${NUMERO}
Categories=Education
Comment=Ebook Oxford ${EBOOK//_/ }
Type=Application
Terminal=false
EOF
    return 0

}

for EBOOK in All_About_Us_iPack_{1..6}; do
    FILE_DESKTOP="${DIR_DESKTOP_USU}/${DIR_IN_ESCRITORIO}/${PREFIJO}-${EBOOK}.desktop"
    FILE_EXE="${DIR_DOCUMETOS_USU}/${EBOOK}/plugandplay_linux.sh"
    if [[ -f "${FILE_EXE}" && ! -f "${FILE_DESKTOP}" ]]; then
        echo "=> Vamos a crear el lanzador del Ebook: ${EBOOK} - ${FILE_DESKTOP}"
        FILE_DESKTOP_DIR="$(dirname "${FILE_DESKTOP}")"
        [[ ! -d "${FILE_DESKTOP_DIR}" ]] && mkdir -p "${FILE_DESKTOP_DIR}"
        crear_lanzador_oxford "${EBOOK}" "${FILE_DESKTOP}" "${FILE_EXE}"
    else
        [[ -f "${FILE_DESKTOP}" ]] && echo "=> Ya existe el lanzador del Ebook: ${EBOOK} - ${FILE_DESKTOP}"
    fi
    FILE_DESKTOP_SKEL="/etc/skel/Escritorio/${DIR_IN_ESCRITORIO}/${PREFIJO}-${EBOOK}.desktop"
    if [[ -f "${FILE_EXE}" && ! -f "${FILE_DESKTOP_SKEL}" ]]; then
        echo "=> Vamos a crear el lanzador del Ebook en el Skel: ${EBOOK} - ${FILE_DESKTOP_SKEL}"
        FILE_DESKTOP_SKEL_DIR="$(dirname "${FILE_DESKTOP_SKEL}")"
        [[ ! -d "${FILE_DESKTOP_SKEL_DIR}" ]] && mkdir -p "${FILE_DESKTOP_SKEL_DIR}"
        crear_lanzador_oxford "${EBOOK}" "${FILE_DESKTOP_SKEL}" "${FILE_EXE}"
    else
        [[ -f "${FILE_DESKTOP_SKEL}" ]] && echo "=> Ya existe el lanzador del Ebook en el Skel: ${EBOOK} - ${FILE_DESKTOP_SKEL}"
    fi
    FILE_DESKTOP_APPLICATIONS="/usr/share/applications/${PREFIJO}-${EBOOK}.desktop"
    if [[ -f "${FILE_EXE}" && ! -f "${FILE_DESKTOP_APPLICATIONS}" ]]; then
        echo "=> Vamos a crear el lanzador del Ebook en /usr/share/applications: ${EBOOK} - ${FILE_DESKTOP_APPLICATIONS}"
        FILE_DESKTOP_APPLICATIONS_DIR="$(dirname "${FILE_DESKTOP_APPLICATIONS}")"
        [[ ! -d "${FILE_DESKTOP_APPLICATIONS_DIR}" ]] && mkdir -p "${FILE_DESKTOP_APPLICATIONS_DIR}"
        crear_lanzador_oxford "${EBOOK}" "${FILE_DESKTOP_APPLICATIONS}" "${FILE_EXE}"
    else
        [[ -f "${FILE_DESKTOP_APPLICATIONS}" ]] && echo "=> Ya existe el lanzador del Ebook en el Skel: ${EBOOK} - ${FILE_DESKTOP_APPLICATIONS}"
    fi

done
