#!/bin/sh

set -ux

# purely numeric usernames are considered invalid
for invalidUsername in "0" "00" "0123456789" "0x0" "0x0123456789" "0o0" "0o01234567" "0xDEADBEEF" "0xcafe42" "0xdeadbeef" "0xdeadBEEF"
do
	useradd $invalidUsername
	ret=$?
	if [ $ret -eq 0 ]
	then
		exit 1
	fi
done

# usernames that start with a digit and contain other valid characters should not fail
for validUsername in "0root" "0123456789root" "0-0" "0_0" "0.o" "0xo" "0-o" "0_o" "0x0x0x0" "0o0123456789" "0.0.0.0" "0x123.456.789" "0o123.456.789" "123.456" "0.0" "0xdeadbeefjawn-smith" "0o123jawn-smith"
do
	useradd $validUsername
	ret=$?
	if [ $ret -ne 0 ]
	then
		exit 1
	fi
done
