summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2015-06-08 05:27:34 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2015-06-08 05:27:34 +0000
commit562f29b535e9d397e2e41e40b2472cfb316d0eea (patch)
tree7c707837725b612c96300d61d6d56cadccccc204
parent93e2d84797155e6f491c33d5c43f873dbc114511 (diff)
downloadpw-darwin-562f29b535e9d397e2e41e40b2472cfb316d0eea.tar.gz
pw-darwin-562f29b535e9d397e2e41e40b2472cfb316d0eea.tar.zst
pw-darwin-562f29b535e9d397e2e41e40b2472cfb316d0eea.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.
-rw-r--r--pw/pw.84
-rw-r--r--pw/pw.c8
-rw-r--r--pw/pw_group.c7
-rw-r--r--pw/pw_user.c10
4 files changed, 20 insertions, 9 deletions
diff --git a/pw/pw.8 b/pw/pw.8
index 1c1f740..9074313 100644
--- a/pw/pw.8
+++ b/pw/pw.8
@@ -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
diff --git a/pw/pw.c b/pw/pw.c
index b21f6c0..30fb55b 100644
--- a/pw/pw.c
+++ b/pw/pw.c
@@ -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;
}
/*