#!/bin/bash
# lastact: arturo@2026-03-04
# desc: script que determina si un equipo esta dualizado o no

function help() {
    echo "$(basename "${0}"): Script que informa con SI/NO si el equipo esta dualizado. Parámetros posibles:"
    echo "\$ $(basename "${0}") -v|--verbose #> Para modo verboso"
    exit 1
}

[[ "${1}" =~ ^-h$|^--help$ ]] && help
[[ "${1}" =~ ^-v$|^--verbose$ ]] && VERBOSO="true" || VERBOSO="false"

# 0) Definimos que por defecto el equipo no está dualizado:
DUALIZADO="false"

# 1) Comprobamos si en el gestor de arranque hay una entrada de Windows:
DIR_EFI_WIN="/boot/efi/EFI/Microsoft"
if [[ -d "${DIR_EFI_WIN}" ]] ; then
    "${VERBOSO}" && echo "#> Windows Boot Manager detectado: ${DIR_EFI_WIN}"
    DUALIZADO="true"
fi

# 2) Comprobamos en discos internos si hay particiones Windows:
# lsblk -o NAME,RM
# RM=1 → dispositivo removible (USB)
# RM=0 → disco interno
PARTICIONES_NTFS_WINDOWS=( $(lsblk -dn -o NAME,RM | awk '$2==0 {print $1}' |
        while read disk; do
            lsblk -ln -o NAME,FSTYPE /dev/$disk | awk '$2=="ntfs"' | tr -s " " ":"
done ) )
if (( ${#PARTICIONES_NTFS_WINDOWS[@]} > 0 )) ; then
    DUALIZADO="true"
    "${VERBOSO}" && echo "#> ${#PARTICIONES_NTFS_WINDOWS[@]} Particiones de Windos NTFS detectadas en discos internos: ${PARTICIONES_NTFS_WINDOWS[*]}"
else
    "${VERBOSO}" && echo "#> No se han detectado Particiones de Windows NTFS en discos internos"
fi

# Mostramos un SI o NO por la salida:
"${DUALIZADO}" && echo "SI" || echo "NO"