]> git.cameronkatri.com Git - pw-darwin.git/commitdiff
backout remove of -q option for pw [user|group] next
authorBaptiste Daroussin <bapt@FreeBSD.org>
Mon, 8 Jun 2015 05:27:34 +0000 (05:27 +0000)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Mon, 8 Jun 2015 05:27:34 +0000 (05:27 +0000)
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.

pw/pw.8
pw/pw.c
pw/pw_group.c
pw/pw_user.c

diff --git a/pw/pw.8 b/pw/pw.8
index 1c1f74085dff732287f047aa9b01db4cb7ee3116..9074313e17bbea14a137bd0636eaf6b3f2ebafdb 100644 (file)
--- 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
 .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
 .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 b21f6c0826dbdad16c8f2ac8213f232358f586ec..30fb55b4f61d133ac6ce44a8e098bc67bcab8591 100644 (file)
--- 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"
                        }
                };
 
index daa121dd811e8899b7858475e43cc47bc9627367..b9cce0dcafbc6a81a3fafa5b63823d6df0c73e6a 100644 (file)
@@ -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')) {
index ea3cb3d2ea28625190870ae80cc7f2565d4ca37f..c3b2751e26a85fada6e39a3bbe737440e9f4a085 100644 (file)
@@ -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;
        }
 
        /*