11.12Slukem# $NetBSD: Makefile,v 1.12 2009/04/22 15:23:09 lukem Exp $
21.1Sagc#
31.12Slukem
41.12SlukemWARNS?=	1	# XXX: -Wsign-compare -Wcast-qual
51.12Slukem
61.4Ssimonb.include <bsd.own.mk>
71.4Ssimonb
81.8SagcCPPFLAGS+= -DEXTENSIONS -DPW_MKDB_ARGC=2
91.1Sagc
101.1SagcPROG= user
111.6SagcSRCS+= user.c main.c
121.2SsimonbLINKS+=	${BINDIR}/user ${BINDIR}/useradd
131.2SsimonbLINKS+=	${BINDIR}/user ${BINDIR}/userdel
141.2SsimonbLINKS+=	${BINDIR}/user ${BINDIR}/usermod
151.2SsimonbLINKS+=	${BINDIR}/user ${BINDIR}/group
161.2SsimonbLINKS+=	${BINDIR}/user ${BINDIR}/groupadd
171.2SsimonbLINKS+=	${BINDIR}/user ${BINDIR}/groupdel
181.2SsimonbLINKS+=	${BINDIR}/user ${BINDIR}/groupmod
191.6SagcLINKS+=	${BINDIR}/user ${BINDIR}/userinfo
201.6SagcLINKS+=	${BINDIR}/user ${BINDIR}/groupinfo
211.1SagcLDADD+= -lutil 
221.4SsimonbDPADD+= ${LIBUTIL}
231.9SgrantMAN= user.8 useradd.8 userdel.8 usermod.8 userinfo.8 usermgmt.conf.5
241.6SagcMAN+= group.8 groupadd.8 groupdel.8 groupmod.8 groupinfo.8
251.5SsorenMLINKS=	useradd.8 adduser.8
261.4Ssimonb
271.6Sagc# this target checks the built-in default group, and, if it doesn't exist,
281.6Sagc# creates it
291.6Sagcdefault-group:
301.6Sagc	@ln -fs ${.OBJDIR}/user ${.OBJDIR}/group;			\
311.11Sapb	defgrp=`${.OBJDIR}/user add -D |				\
321.11Sapb		${TOOL_AWK} '/^group/ { print $$2 }'`;			\
331.6Sagc	if ${.OBJDIR}/group info -e $$defgrp; then			\
341.11Sapb		defgid=`${.OBJDIR}/group info $$defgrp |		\
351.11Sapb			${TOOL_AWK} '/^gid/ { print $$2 }'`;		\
361.6Sagc	else								\
371.6Sagc		defgid=99;						\
381.6Sagc		while [ $$defgid -gt 0 ]; do				\
391.6Sagc			${.OBJDIR}/group info -e $$defgid || break;	\
401.6Sagc			defgid=`expr $$defgid - 1`;			\
411.6Sagc		done;							\
421.6Sagc		if [ $$defgid -eq 0 ]; then				\
431.6Sagc			defgid=100;					\
441.6Sagc			while [ $$defgid -lt 60000 ]; do		\
451.6Sagc				${.OBJDIR}/group info -e $$defgid || break; \
461.6Sagc				defgid=`expr $$defgid + 1`;		\
471.6Sagc			done;						\
481.6Sagc			if [ $$defgid -eq 60000 ]; then			\
491.6Sagc				echo "No gids left";			\
501.6Sagc				exit 1;					\
511.6Sagc			fi;						\
521.6Sagc		fi;							\
531.6Sagc		${.OBJDIR}/group add -g $$defgid $$defgrp;		\
541.6Sagc	fi;								\
551.6Sagc	echo "Default group is $$defgrp ($$defgid):";			\
561.6Sagc	${.OBJDIR}/group info $$defgrp
571.6Sagc
581.1Sagc.include <bsd.prog.mk>
591.1Sagc
601.1Sagctest: ${PROG}
611.1Sagc	@echo "No news is good news"
621.1Sagc	@echo "1. Adding new user"
631.6Sagc	@rm -f useradd
641.6Sagc	@ln -s user useradd
651.6Sagc	-./useradd -m -g=uid test1.1
661.1Sagc	@echo "2. Modifying new user"
671.6Sagc	-./${PROG} mod -l test1.2 test1.1
681.1Sagc	@echo "3. Deleting new user"
691.6Sagc	-./${PROG} del -r test1.2
701.1Sagc	@echo "4. Attempting to add an invalid user name - IGNORE ANY ERROR"
711.1Sagc	-./${PROG} add -m test1%1
721.1Sagc	@echo "5. Bad usage - IGNORE ANY ERROR"
731.1Sagc	-./${PROG} add -m
741.6Sagc	@echo "6. Set range defaults"
751.6Sagc	-./${PROG} add -D -r4000..6000
761.6Sagc	-./${PROG} add -D
771.6Sagc	@echo "7. Get user information"
781.6Sagc	-./${PROG} info root
791.6Sagc	@echo "8. Bad user name - IGNORE ANY ERROR"
801.6Sagc	-./${PROG} info test1%1 || echo "User not found"
811.1Sagc	@echo "All tests completed"
82