diff options
author | Baptiste Daroussin <bapt@FreeBSD.org> | 2015-06-08 05:27:34 +0000 |
---|---|---|
committer | Baptiste Daroussin <bapt@FreeBSD.org> | 2015-06-08 05:27:34 +0000 |
commit | 07d47dbbf964e186685045cb504935dd9be45792 (patch) | |
tree | 39f614ab20b46861b3588619bf4212b0fe05a7f0 /pw | |
parent | 1384cb87b1c4c46b04a04d39617eb11537a371e5 (diff) | |
download | pw-darwin-07d47dbbf964e186685045cb504935dd9be45792.tar.gz pw-darwin-07d47dbbf964e186685045cb504935dd9be45792.tar.zst pw-darwin-07d47dbbf964e186685045cb504935dd9be45792.zip |
backout remove of -q option for pw [user|group] next
While the return code is broken, some corner case usage depends on the
functionnality, so backout until we get better regression tests covering those
corner case usage.
Diffstat (limited to 'pw')
-rw-r--r-- | pw/pw.8 | 4 | ||||
-rw-r--r-- | pw/pw.c | 8 | ||||
-rw-r--r-- | pw/pw_group.c | 7 | ||||
-rw-r--r-- | pw/pw_user.c | 10 |
4 files changed, 20 insertions, 9 deletions
@@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 7, 2015 +.Dd June 3, 2015 .Dt PW 8 .Os .Sh NAME @@ -128,6 +128,7 @@ .Op Fl V Ar etcdir .Ar usernext .Op Fl C Ar config +.Op Fl q .Nm .Op Fl R Ar rootdir .Op Fl V Ar etcdir @@ -183,6 +184,7 @@ .Op Fl V Ar etcdir .Ar groupnext .Op Fl C Ar config +.Op Fl q .Nm .Op Fl R Ar rootdir .Op Fl V Ar etcdir @@ -113,7 +113,7 @@ main(int argc, char *argv[]) "R:V:C:qn:u:rY", "R:V:C:qn:u:c:d:e:p:g:G:mM:l:k:s:w:L:h:H:FNPY", "R:V:C:qn:u:FPa7", - "R:V:C:", + "R:V:C:q", "R:V:C:q", "R:V:C:q" }, @@ -122,7 +122,7 @@ main(int argc, char *argv[]) "R:V:C:qn:g:Y", "R:V:C:qn:d:g:l:h:H:FM:m:NPY", "R:V:C:qn:g:FPa", - "R:V:C:" + "R:V:C:q" } }; @@ -469,7 +469,8 @@ cmdhelp(int mode, int which) "usage: pw usernext [switches]\n" "\t-V etcdir alternate /etc location\n" "\t-R rootir alternate root directory\n" - "\t-C config configuration file\n", + "\t-C config configuration file\n" + "\t-q quiet operation\n", "usage pw: lock [switches]\n" "\t-V etcdir alternate /etc locations\n" "\t-C config configuration file\n" @@ -523,6 +524,7 @@ cmdhelp(int mode, int which) "\t-V etcdir alternate /etc location\n" "\t-R rootir alternate root directory\n" "\t-C config configuration file\n" + "\t-q quiet operation\n" } }; diff --git a/pw/pw_group.c b/pw/pw_group.c index daa121d..b9cce0d 100644 --- a/pw/pw_group.c +++ b/pw/pw_group.c @@ -73,8 +73,11 @@ pw_group(int mode, char *name, long id, struct cargs * args) * next gid to stdout */ if (mode == M_NEXT) { - printf("%u\n", gr_gidpolicy(cnf, id)); - return (EXIT_SUCCESS); + gid_t next = gr_gidpolicy(cnf, id); + if (getarg(args, 'q')) + return next; + printf("%u\n", next); + return EXIT_SUCCESS; } if (mode == M_PRINT && getarg(args, 'a')) { diff --git a/pw/pw_user.c b/pw/pw_user.c index ea3cb3d..c3b2751 100644 --- a/pw/pw_user.c +++ b/pw/pw_user.c @@ -158,10 +158,14 @@ pw_user(int mode, char *name, long id, struct cargs * args) * With M_NEXT, we only need to return the * next uid to stdout */ - if (mode == M_NEXT) { - printf("%u:", pw_uidpolicy(cnf, id)); + if (mode == M_NEXT) + { + uid_t next = pw_uidpolicy(cnf, id); + if (getarg(args, 'q')) + return next; + printf("%u:", next); pw_group(mode, name, -1, args); - return (EXIT_SUCCESS); + return EXIT_SUCCESS; } /* |