1 # $NetBSD: Makefile,v 1.11 2008/10/19 22:05:24 apb Exp $ 2 # 3 .include <bsd.own.mk> 4 5 CPPFLAGS+= -DEXTENSIONS -DPW_MKDB_ARGC=2 6 WARNS= 3 7 8 PROG= user 9 SRCS+= user.c main.c 10 LINKS+= ${BINDIR}/user ${BINDIR}/useradd 11 LINKS+= ${BINDIR}/user ${BINDIR}/userdel 12 LINKS+= ${BINDIR}/user ${BINDIR}/usermod 13 LINKS+= ${BINDIR}/user ${BINDIR}/group 14 LINKS+= ${BINDIR}/user ${BINDIR}/groupadd 15 LINKS+= ${BINDIR}/user ${BINDIR}/groupdel 16 LINKS+= ${BINDIR}/user ${BINDIR}/groupmod 17 LINKS+= ${BINDIR}/user ${BINDIR}/userinfo 18 LINKS+= ${BINDIR}/user ${BINDIR}/groupinfo 19 LDADD+= -lutil 20 DPADD+= ${LIBUTIL} 21 MAN= user.8 useradd.8 userdel.8 usermod.8 userinfo.8 usermgmt.conf.5 22 MAN+= group.8 groupadd.8 groupdel.8 groupmod.8 groupinfo.8 23 MLINKS= useradd.8 adduser.8 24 25 # this target checks the built-in default group, and, if it doesn't exist, 26 # creates it 27 default-group: 28 @ln -fs ${.OBJDIR}/user ${.OBJDIR}/group; \ 29 defgrp=`${.OBJDIR}/user add -D | \ 30 ${TOOL_AWK} '/^group/ { print $$2 }'`; \ 31 if ${.OBJDIR}/group info -e $$defgrp; then \ 32 defgid=`${.OBJDIR}/group info $$defgrp | \ 33 ${TOOL_AWK} '/^gid/ { print $$2 }'`; \ 34 else \ 35 defgid=99; \ 36 while [ $$defgid -gt 0 ]; do \ 37 ${.OBJDIR}/group info -e $$defgid || break; \ 38 defgid=`expr $$defgid - 1`; \ 39 done; \ 40 if [ $$defgid -eq 0 ]; then \ 41 defgid=100; \ 42 while [ $$defgid -lt 60000 ]; do \ 43 ${.OBJDIR}/group info -e $$defgid || break; \ 44 defgid=`expr $$defgid + 1`; \ 45 done; \ 46 if [ $$defgid -eq 60000 ]; then \ 47 echo "No gids left"; \ 48 exit 1; \ 49 fi; \ 50 fi; \ 51 ${.OBJDIR}/group add -g $$defgid $$defgrp; \ 52 fi; \ 53 echo "Default group is $$defgrp ($$defgid):"; \ 54 ${.OBJDIR}/group info $$defgrp 55 56 .include <bsd.prog.mk> 57 58 test: ${PROG} 59 @echo "No news is good news" 60 @echo "1. Adding new user" 61 @rm -f useradd 62 @ln -s user useradd 63 -./useradd -m -g=uid test1.1 64 @echo "2. Modifying new user" 65 -./${PROG} mod -l test1.2 test1.1 66 @echo "3. Deleting new user" 67 -./${PROG} del -r test1.2 68 @echo "4. Attempting to add an invalid user name - IGNORE ANY ERROR" 69 -./${PROG} add -m test1%1 70 @echo "5. Bad usage - IGNORE ANY ERROR" 71 -./${PROG} add -m 72 @echo "6. Set range defaults" 73 -./${PROG} add -D -r4000..6000 74 -./${PROG} add -D 75 @echo "7. Get user information" 76 -./${PROG} info root 77 @echo "8. Bad user name - IGNORE ANY ERROR" 78 -./${PROG} info test1%1 || echo "User not found" 79 @echo "All tests completed" 80