#!/bin/bash

# Pfad: /usr/local/bin/logread
# Beschreibung: Ein logread-Klon für Debian (systemd-basiert)

FOLLOW=false
FILE=""

# Hilfe-Funktion
show_help() {
    echo "Benutzung: logread [-f] [DATEIPFAD]"
    echo ""
    echo "Optionen:"
    echo "  -f         Folgt der Ausgabe in Echtzeit (Live-Ansicht)"
    echo "  DATEIPFAD  Liest eine spezifische Textdatei statt des System-Journals"
    echo ""
    echo "Beispiele:"
    echo "  logread          Zeigt die letzten 50 System-Logs"
    echo "  logread -f       Echtzeit-Überwachung des Systems"
    echo "  logread /var/log/auth.log   Liest eine spezifische Datei"
    exit 0
}

# Parameter verarbeiten
while [[ $# -gt 0 ]]; do
    case "$1" in
        -f)
            FOLLOW=true
            shift
            ;;
        -h|--help)
            show_help
            ;;
        *)
            FILE="$1"
            shift
            ;;
    esac
done

# LOGIK-ENTSCHEIDUNG
if [ -z "$FILE" ]; then
    # FALL 1: Keine Datei angegeben -> Nutze das System-Journal (journalctl)
    if [ "$FOLLOW" = true ]; then
        # Echtzeit-Ansicht des Journals
        journalctl -f --output short-precise
    else
        # Zeige die letzten 50 Zeilen ohne Pager (wie cat)
        journalctl -n 50 --no-pager --output short-precise
    fi
else
    # FALL 2: Eine Datei wurde als Argument übergeben
    if [ ! -f "$FILE" ]; then
        echo "Fehler: Datei '$FILE' nicht gefunden."
        exit 1
    fi

    if [ "$FOLLOW" = true ]; then
        # Live-Verfolgung der Datei
        tail -f "$FILE"
    else
        # Ganze Datei ausgeben
        cat "$FILE"
    fi
fi
