summaryrefslogtreecommitdiffstats
path: root/pw/pw.c
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2015-06-07 15:09:53 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2015-06-07 15:09:53 +0000
commit926db19a96ef2f0029e6f3d6bd6c1d5c5e7aeca3 (patch)
tree092aef05bff37f5b8f1d7d0cc964d06744b9a2ed /pw/pw.c
parent5d2f6aa9d7d2747fbb459bfc07370a4e4c6b289c (diff)
downloadpw-darwin-926db19a96ef2f0029e6f3d6bd6c1d5c5e7aeca3.tar.gz
pw-darwin-926db19a96ef2f0029e6f3d6bd6c1d5c5e7aeca3.tar.zst
pw-darwin-926db19a96ef2f0029e6f3d6bd6c1d5c5e7aeca3.zip
Handle dryrun (-N) via global pwconf
Diffstat (limited to 'pw/pw.c')
-rw-r--r--pw/pw.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/pw/pw.c b/pw/pw.c
index 991019d..7a86680 100644
--- a/pw/pw.c
+++ b/pw/pw.c
@@ -132,6 +132,7 @@ main(int argc, char *argv[])
relocated = nis = false;
conf.rootdir[0] = '\0';
+ conf.dryrun = false;
strlcpy(conf.etcpath, _PATH_PWD, sizeof(conf.etcpath));
LIST_INIT(&arglist);
@@ -218,6 +219,9 @@ main(int argc, char *argv[])
case 'C':
config = optarg;
break;
+ case 'N':
+ conf.dryrun = true;
+ break;
case 'Y':
nis = true;
break;
@@ -231,7 +235,7 @@ main(int argc, char *argv[])
/*
* Must be root to attempt an update
*/
- if (geteuid() != 0 && mode != M_PRINT && mode != M_NEXT && getarg(&arglist, 'N')==NULL)
+ if (geteuid() != 0 && mode != M_PRINT && mode != M_NEXT && !conf.dryrun)
errx(EX_NOPERM, "you must be root to run this program");
/*