ports/52414: pkg_info improvement: get only package names with -q flag
Sergey Matveychuk
sem at ciam.ru
Sun May 18 22:50:19 UTC 2003
>Number: 52414
>Category: ports
>Synopsis: pkg_info improvement: get only package names with -q flag
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sun May 18 15:50:17 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator: Sergey Matveychuk
>Release: FreeBSD 5.0-RELEASE-p2 i386
>Organization:
>Environment:
System: FreeBSD sem-home.ciam.ru 5.0-RELEASE-p2 FreeBSD 5.0-RELEASE-p2 #4: Wed Apr 23 07:08:09 MSD 2003 root at sem-home.ciam.ru:/usr/src/sys/i386/compile/SEM-HOME i386
>Description:
Almost impossible to get package names from script when glob or regex
used. -q flag doesn't work in this case.
This patch fix it and make -q flag useful for other cases.
This feature can be use in bsd.port.mk, don't forget change
PKG_INSTALL_VERSION constant if patch will commited.
>How-To-Repeat:
type: pkg_info -q glob, pkg_info -q -x pattern, pkg_info -a -q
the results will the same as without -q flag
>Fix:
diff -ruN /usr/src/usr.sbin/pkg_install.orig/info/main.c info/main.c
--- /usr/src/usr.sbin/pkg_install.orig/info/main.c Mon May 19 00:34:50 2003
+++ info/main.c Mon May 19 01:38:49 2003
@@ -54,11 +54,7 @@
TAILQ_INIT(whead);
pkgs = start = argv;
- if (argc == 1) {
- MatchType = MATCH_ALL;
- Flags = SHOW_INDEX;
- }
- else while ((ch = getopt(argc, argv, Options)) != -1) {
+ while ((ch = getopt(argc, argv, Options)) != -1) {
switch(ch) {
case 'a':
MatchType = MATCH_ALL;
@@ -199,6 +195,10 @@
break;
}
}
+ if (argc == 1) {
+ MatchType = MATCH_ALL;
+ Flags = SHOW_INDEX;
+ }
argc -= optind;
argv += optind;
@@ -211,8 +211,8 @@
}
/* Set some reasonable defaults */
- if (!Flags)
- Flags = SHOW_COMMENT | SHOW_DESC | SHOW_REQBY;
+ if (!Flags && !Quiet)
+ Flags = SHOW_COMMENT | SHOW_DESC | SHOW_REQBY;
/* Get all the remaining package names, if any */
while (*argv) {
diff -ruN /usr/src/usr.sbin/pkg_install.orig/info/perform.c info/perform.c
--- /usr/src/usr.sbin/pkg_install.orig/info/perform.c Mon May 19 00:34:50 2003
+++ info/perform.c Mon May 19 01:31:47 2003
@@ -188,6 +188,13 @@
show_index(tmp, COMMENT_FNAME);
}
else {
+ if(!Flags && Quiet) {
+ if(QUIET)
+ printf("%s", InfoPrefix);
+ printf("%s\n", pkg);
+ code = 0;
+ goto bail;
+ }
/* Start showing the package contents */
if (!Quiet)
printf("%sInformation for %s:\n\n", InfoPrefix, pkg);
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list