Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.sbin/pkg_install Let pkg_admin(1) have a -S argument - s...



details:   https://anonhg.NetBSD.org/src/rev/a68bb6f588dc
branches:  trunk
changeset: 552087:a68bb6f588dc
user:      agc <agc%NetBSD.org@localhost>
date:      Thu Sep 18 09:56:20 2003 +0000

description:
Let pkg_admin(1) have a -S argument - some vendors' xargs(1) don't pass
a null ("") argument properly (hi, Sun), so make -S a synonym for -s "".

Don't dump core if no command is given to pkg_admin(1).

Print usage message to stderr, not stdout, and use the program name by
which it was invoked.

Bump pkg_install version to 20030918.

diffstat:

 usr.sbin/pkg_install/admin/main.c      |  100 ++++++++++++++++++--------------
 usr.sbin/pkg_install/admin/pkg_admin.1 |   10 ++-
 usr.sbin/pkg_install/lib/version.h     |    4 +-
 3 files changed, 66 insertions(+), 48 deletions(-)

diffs (215 lines):

diff -r 8437b44ca7b8 -r a68bb6f588dc usr.sbin/pkg_install/admin/main.c
--- a/usr.sbin/pkg_install/admin/main.c Thu Sep 18 09:24:35 2003 +0000
+++ b/usr.sbin/pkg_install/admin/main.c Thu Sep 18 09:56:20 2003 +0000
@@ -1,8 +1,8 @@
-/*     $NetBSD: main.c,v 1.40 2003/09/13 05:48:50 jlam Exp $   */
+/*     $NetBSD: main.c,v 1.41 2003/09/18 09:56:21 agc Exp $    */
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: main.c,v 1.40 2003/09/13 05:48:50 jlam Exp $");
+__RCSID("$NetBSD: main.c,v 1.41 2003/09/18 09:56:21 agc Exp $");
 #endif
 
 /*
@@ -49,15 +49,35 @@
 
 #define DEFAULT_SFX    ".t[bg]z"       /* default suffix for ls{all,best} */
 
-static const char Options[] = "bd:K:s:V";
-
-void    usage(void);
+static const char Options[] = "K:SVbd:s:";
 
 int     filecnt;
 int     pkgcnt;
 
 static int checkpattern_fn(const char *, void *);
 
+/* print usage message and exit */
+static void 
+usage(const char *prog)
+{
+       (void) fprintf(stderr, "usage: %s [-b] [-d lsdir] [-V] [-s sfx] command args ...\n"
+           "Where 'commands' and 'args' are:\n"
+           " rebuild                     - rebuild pkgdb from +CONTENTS files\n"
+           " check [pkg ...]             - check md5 checksum of installed files\n"
+           " add pkg ...                 - add pkg files to database\n"
+           " delete pkg ...              - delete file entries for pkg in database\n"
+#ifdef PKGDB_DEBUG
+           " addkey key value            - add key and value\n"
+           " delkey key                  - delete reference to key\n"
+#endif
+           " lsall /path/to/pkgpattern   - list all pkgs matching the pattern\n"
+           " lsbest /path/to/pkgpattern  - list pkgs matching the pattern best\n"
+           " dump                        - dump database\n"
+           " pmatch pattern pkg          - returns true if pkg matches pattern, otherwise false\n",
+           prog);
+       exit(EXIT_FAILURE);
+}
+
 /*
  * Assumes CWD is in /var/db/pkg/<pkg>!
  */
@@ -377,20 +397,34 @@
 int 
 main(int argc, char *argv[])
 {
-       int     ch;
-       char    lsdir[FILENAME_MAX];
-       char   *lsdirp = NULL;
-       char    sfx[FILENAME_MAX];
-       Boolean use_default_sfx = TRUE;
-       Boolean show_basename_only = FALSE;
+       const char      *prog;
+       Boolean          use_default_sfx = TRUE;
+       Boolean          show_basename_only = FALSE;
+       char             lsdir[FILENAME_MAX];
+       char             sfx[FILENAME_MAX];
+       char            *lsdirp = NULL;
+       int              ch;
 
-       setprogname(argv[0]);
+       setprogname(prog = argv[0]);
 
        if (argc < 2)
-               usage();
+               usage(prog);
 
        while ((ch = getopt(argc, argv, Options)) != -1)
                switch (ch) {
+               case 'K':
+                       _pkgdb_setPKGDB_DIR(optarg);
+                       break;
+
+               case 'S':
+                       sfx[0] = 0x0;
+                       use_default_sfx = FALSE;
+                       break;
+
+               case 'V':
+                       show_version();
+                       /* NOTREACHED */
+
                case 'b':
                        show_basename_only = TRUE;
                        break;
@@ -400,26 +434,23 @@
                        lsdirp = lsdir;
                        break;
 
-               case 'K':
-                       _pkgdb_setPKGDB_DIR(optarg);
-                       break;
-
                case 's':
                        (void) strlcpy(sfx, optarg, sizeof(sfx));
                        use_default_sfx = FALSE;
                        break;
 
-               case 'V':
-                       show_version();
-                       /* NOTREACHED */
-
                default:
-                       usage();
+                       usage(prog);
                        /* NOTREACHED */
                }
+
        argc -= optind;
        argv += optind;
 
+       if (argc <= 0) {
+               usage(prog);
+       }
+
        if (use_default_sfx)
                (void) snprintf(sfx, sizeof(sfx), "%s", DEFAULT_SFX);
 
@@ -433,7 +464,7 @@
                pkg = argv[1];
 
                if (pattern == NULL || pkg == NULL) {
-                       usage();
+                       usage(prog);
                }
 
                if (pmatch(pattern, pkg)){
@@ -648,34 +679,13 @@
        }
 #endif
        else {
-               usage();
+               usage(prog);
        }
 
        return 0;
 }
 
-void 
-usage(void)
-{
-       printf("usage: pkg_admin [-b] [-d lsdir] [-V] [-s sfx] command args ...\n"
-           "Where 'commands' and 'args' are:\n"
-           " rebuild                     - rebuild pkgdb from +CONTENTS files\n"
-           " check [pkg ...]             - check md5 checksum of installed files\n"
-           " add pkg ...                 - add pkg files to database\n"
-           " delete pkg ...              - delete file entries for pkg in database\n"
-#ifdef PKGDB_DEBUG
-           " addkey key value            - add key and value\n"
-           " delkey key                  - delete reference to key\n"
-#endif
-           " lsall /path/to/pkgpattern   - list all pkgs matching the pattern\n"
-           " lsbest /path/to/pkgpattern  - list pkgs matching the pattern best\n"
-           " dump                        - dump database\n"
-           " pmatch pattern pkg          - returns true if pkg matches pattern, otherwise false\n");
-       exit(EXIT_FAILURE);
-}
-
 void
 cleanup(int signo)
 {
-       ;
 }
diff -r 8437b44ca7b8 -r a68bb6f588dc usr.sbin/pkg_install/admin/pkg_admin.1
--- a/usr.sbin/pkg_install/admin/pkg_admin.1    Thu Sep 18 09:24:35 2003 +0000
+++ b/usr.sbin/pkg_install/admin/pkg_admin.1    Thu Sep 18 09:56:20 2003 +0000
@@ -1,4 +1,4 @@
-.\"    $NetBSD: pkg_admin.1,v 1.25 2003/09/13 05:48:50 jlam Exp $
+.\"    $NetBSD: pkg_admin.1,v 1.26 2003/09/18 09:56:22 agc Exp $
 .\"
 .\" Copyright (c) 1999-2002 Hubert Feyrer.  All rights reserved.
 .\"
@@ -72,6 +72,14 @@
 .Ev PKG_DBDIR
 if it's set, otherwise it defaults to
 .Pa /var/db/pkg .
+.It Fl S
+Set the shell glob pattern for package suffices when matching package
+names for
+.Cm lsall
+and
+.Cm lsbest
+to be the null suffix.
+The default pattern is ".t[bg]z".
 .It Fl s Ar sfx_pattern
 Set the shell glob pattern for package suffices when matching package
 names for
diff -r 8437b44ca7b8 -r a68bb6f588dc usr.sbin/pkg_install/lib/version.h
--- a/usr.sbin/pkg_install/lib/version.h        Thu Sep 18 09:24:35 2003 +0000
+++ b/usr.sbin/pkg_install/lib/version.h        Thu Sep 18 09:56:20 2003 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: version.h,v 1.33 2003/09/14 04:58:31 jlam Exp $        */
+/*     $NetBSD: version.h,v 1.34 2003/09/18 09:56:20 agc Exp $ */
 
 /*
  * Copyright (c) 2001 Thomas Klausner.  All rights reserved.
@@ -33,6 +33,6 @@
 #ifndef _INST_LIB_VERSION_H_
 #define _INST_LIB_VERSION_H_
 
-#define PKGTOOLS_VERSION "20030914"
+#define PKGTOOLS_VERSION "20030918"
 
 #endif /* _INST_LIB_VERSION_H_ */



Home | Main Index | Thread Index | Old Index