#!/bin/sh
# xuname - display system info relevant for debugging Void

OS=Void
KVER=$(uname -r)
MACH=$(xbps-uhelper arch)
OUTDATED=$(xbps-install -Mun)
HOLD=$(xbps-query -H)
VM=$(dmesg 2>/dev/null | awk '/Hypervisor detected/{print $NF}')
[ -z "$VM" ] && grep -q hypervisor /proc/cpuinfo && VM=VM
CPU=$(awk '/^vendor_id/{print $NF;exit}' /proc/cpuinfo)
[ -z "$CPU" ] && CPU=$(awk '/^platform/{print $NF;exit}' /proc/cpuinfo)
REPO=$(xbps-query --regex -p repository -s '.' | cut -d/ -f2- | sort -u | awk '
	/^\/repo-.*\.voidlinux\.org\/current\/multilib/ || /^\/mirrors\.servercentral\.com\/voidlinux\/current\/multilib/ {m=m"m"}
	/^\/repo-.*\.voidlinux\.org\/current\/debug/ || /^\/mirrors\.servercentral\.com\/voidlinux\/current\/debug/ {d=d"d"}
	/^\/repo-.*\.voidlinux\.org\/current\/.*\/nonfree/ || /^\/mirrors\.servercentral\.com\/voidlinux\/current\/.*\/nonfree/ {n=n"n"}
	/^\/repo-.*\.voidlinux\.org\/current/ || /^\/mirrors\.servercentral\.com\/voidlinux\/current/ {r=r"r"}
	/xdowngrade-/ {D=D"D"}
	!/^\/repo-.*\.voidlinux\.org/ && !/^\/mirrors\.servercentral\.com\/voidlinux/ && !/xdowngrade-/ {F=F"F"}
	END { print r m d n D F }
')

printf '%s %s %s %s %s%s %s\n' \
	"$OS" "$KVER" "$MACH" "${CPU:-Unknown}${VM:+/$VM}" "${OUTDATED:+not}uptodate" "${HOLD:+ hold}" "$REPO"
