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