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