#!/bin/bash
set -euo pipefail

usage() {
    echo "Usage: $0 <user:pass file>"
    exit 1
}

[ $# -eq 1 ] || usage
[ -r "$1" ] || { echo "Error: cannot read file '$1'" >&2; exit 1; }

while IFS=: read -r USER PASS || [ -n "$USER" ]; do
    # Leere Zeilen und Kommentare überspringen
    [ -z "$USER" ] && continue
    case "$USER" in \#*) continue ;; esac

    if id "$USER" &>/dev/null; then
        echo "WARN: User '$USER' existiert bereits, überspringe useradd" >&2
    else
        if useradd -m -s /bin/bash "$USER"; then
            echo "OK: User '$USER' angelegt"
        else
            echo "ERROR: useradd für '$USER' fehlgeschlagen" >&2
            continue
        fi
    fi

    if echo "$USER:$PASS" | chpasswd; then
        echo "OK: Passwort für '$USER' gesetzt"
    else
        echo "ERROR: chpasswd für '$USER' fehlgeschlagen" >&2
    fi
done < "$1"
