#!/bin/sh
set -e
for arg; do
  case "$arg" in --*) continue ;; esac
  for dir in /etc/sysusers.d /run/sysusers.d /usr/local/lib/sysusers.d /usr/lib/sysusers.d; do
    [ -f "$dir/$arg" ] || continue
    while IFS= read -r line; do
      set -- $line
      case "${1-}" in
        '#'*|'') continue ;;
        u) getent passwd "$2" >/dev/null 2>&1 || \
             adduser --system --no-create-home --disabled-password \
                     --quiet --group "$2" 2>/dev/null || true ;;
        g) getent group "$2" >/dev/null 2>&1 || \
             addgroup --system "$2" 2>/dev/null || true ;;
        m) adduser "$2" "$3" 2>/dev/null || true ;;
      esac
    done < "$dir/$arg"
    break
  done
done
