#!/bin/bash

# Sicherstellen, dass root-Rechte vorliegen
if [[ $EUID -ne 0 ]]; then
   echo "Dieses Skript muss als root ausgeführt werden. Benutze: sudo $0"
   exit 1
fi

clear
echo "📦 Verfügbare Laufwerke/Partitionen:"
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT

echo ""
read -p "🔍 Welche Partition möchtest du mounten (z.B. sdb1): " PARTITION
DEVICE="/dev/$PARTITION"

if [ ! -b "$DEVICE" ]; then
    echo "❌ Fehler: $DEVICE existiert nicht!"
    exit 1
fi

# Prüfen, ob Dateisystem vorhanden ist
FSTYPE=$(blkid -s TYPE -o value "$DEVICE")

if [ -z "$FSTYPE" ]; then
    echo "⚠️  Diese Partition scheint kein Dateisystem zu haben."
    read -p "❓ Möchtest du sie formatieren? (Dies löscht alle Daten!) [ja/nein]: " FORMAT_ANSWER
    if [[ "$FORMAT_ANSWER" == "ja" ]]; then
        read -p "📝 Welches Dateisystem willst du verwenden (z.B. ext4): " NEWFS
        echo "🚧 Formatiere $DEVICE mit $NEWFS ..."
        mkfs -t "$NEWFS" "$DEVICE"
        FSTYPE="$NEWFS"
    else
        echo "❌ Abgebrochen. Ohne Dateisystem kann nicht gemountet werden."
        exit 1
    fi
else
    echo "✅ Dateisystem erkannt: $FSTYPE"
fi

# Mountpunkt erfragen
read -p "📁 Wohin soll gemountet werden? (z.B. /mnt/$PARTITION): " MOUNTPOINT

# Verzeichnis ggf. anlegen
if [ ! -d "$MOUNTPOINT" ]; then
    mkdir -p "$MOUNTPOINT"
    echo "📂 Mountpunkt $MOUNTPOINT wurde erstellt."
fi

# Mounten
echo "🔧 Versuche, $DEVICE nach $MOUNTPOINT zu mounten..."
mount "$DEVICE" "$MOUNTPOINT"
if [ $? -ne 0 ]; then
    echo "❌ Fehler beim Mounten!"
    exit 1
fi
echo "✅ Erfolgreich gemountet."

# fstab-Eintrag anbieten
read -p "📜 Soll der Eintrag in /etc/fstab gespeichert werden (automatisches Mounten beim Boot)? [ja/nein]: " FSTAB_ANSWER
if [[ "$FSTAB_ANSWER" == "ja" ]]; then
    UUID=$(blkid -s UUID -o value "$DEVICE")
    echo "UUID=$UUID $MOUNTPOINT $FSTYPE defaults 0 2" >> /etc/fstab
    echo "✅ /etc/fstab wurde aktualisiert."
fi
