# $NetBSD: Makefile,v 1.12 2009/04/22 15:23:09 lukem Exp $ # WARNS?= 1 # XXX: -Wsign-compare -Wcast-qual .include CPPFLAGS+= -DEXTENSIONS -DPW_MKDB_ARGC=2 PROG= user SRCS+= user.c main.c LINKS+= ${BINDIR}/user ${BINDIR}/useradd LINKS+= ${BINDIR}/user ${BINDIR}/userdel LINKS+= ${BINDIR}/user ${BINDIR}/usermod LINKS+= ${BINDIR}/user ${BINDIR}/group LINKS+= ${BINDIR}/user ${BINDIR}/groupadd LINKS+= ${BINDIR}/user ${BINDIR}/groupdel LINKS+= ${BINDIR}/user ${BINDIR}/groupmod LINKS+= ${BINDIR}/user ${BINDIR}/userinfo LINKS+= ${BINDIR}/user ${BINDIR}/groupinfo LDADD+= -lutil DPADD+= ${LIBUTIL} MAN= user.8 useradd.8 userdel.8 usermod.8 userinfo.8 usermgmt.conf.5 MAN+= group.8 groupadd.8 groupdel.8 groupmod.8 groupinfo.8 MLINKS= useradd.8 adduser.8 # this target checks the built-in default group, and, if it doesn't exist, # creates it default-group: @ln -fs ${.OBJDIR}/user ${.OBJDIR}/group; \ defgrp=`${.OBJDIR}/user add -D | \ ${TOOL_AWK} '/^group/ { print $$2 }'`; \ if ${.OBJDIR}/group info -e $$defgrp; then \ defgid=`${.OBJDIR}/group info $$defgrp | \ ${TOOL_AWK} '/^gid/ { print $$2 }'`; \ else \ defgid=99; \ while [ $$defgid -gt 0 ]; do \ ${.OBJDIR}/group info -e $$defgid || break; \ defgid=`expr $$defgid - 1`; \ done; \ if [ $$defgid -eq 0 ]; then \ defgid=100; \ while [ $$defgid -lt 60000 ]; do \ ${.OBJDIR}/group info -e $$defgid || break; \ defgid=`expr $$defgid + 1`; \ done; \ if [ $$defgid -eq 60000 ]; then \ echo "No gids left"; \ exit 1; \ fi; \ fi; \ ${.OBJDIR}/group add -g $$defgid $$defgrp; \ fi; \ echo "Default group is $$defgrp ($$defgid):"; \ ${.OBJDIR}/group info $$defgrp .include test: ${PROG} @echo "No news is good news" @echo "1. Adding new user" @rm -f useradd @ln -s user useradd -./useradd -m -g=uid test1.1 @echo "2. Modifying new user" -./${PROG} mod -l test1.2 test1.1 @echo "3. Deleting new user" -./${PROG} del -r test1.2 @echo "4. Attempting to add an invalid user name - IGNORE ANY ERROR" -./${PROG} add -m test1%1 @echo "5. Bad usage - IGNORE ANY ERROR" -./${PROG} add -m @echo "6. Set range defaults" -./${PROG} add -D -r4000..6000 -./${PROG} add -D @echo "7. Get user information" -./${PROG} info root @echo "8. Bad user name - IGNORE ANY ERROR" -./${PROG} info test1%1 || echo "User not found" @echo "All tests completed"