[pacman-dev] [PATCH 3/3] Add quiet for the --print-uris operation.

Xavier Chantry shiningxc at gmail.com
Sun Jul 19 05:16:33 EDT 2009


This implements FS#14208

-Spq will print package name and version
-Spqq will print package name

Signed-off-by: Xavier Chantry <shiningxc at gmail.com>
---
 doc/pacman.8.txt    |    4 +++-
 src/pacman/pacman.c |    2 +-
 src/pacman/sync.c   |   21 ++++++++++++++-------
 3 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/doc/pacman.8.txt b/doc/pacman.8.txt
index ccff167..420e799 100644
--- a/doc/pacman.8.txt
+++ b/doc/pacman.8.txt
@@ -311,7 +311,9 @@ linkman:pacman.conf[5].
 	pacman's output is processed in a script.) Search will only show package
 	names and not repo, version, group, and description information; list
 	will only show package names and omit databases and versions; group will
-	only show package names and omit group names.
+	only show package names and omit group names; '\--print-uris' will only
+	show package names and package versions, and only package names if '-q' is used
+	twice.
 
 *-s, \--search* <'regexp'>::
 	This will search each package in the sync databases for names or
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index 48d45ad..c1b1c2e 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -490,7 +490,7 @@ static int parseargs(int argc, char *argv[])
 				config->flags |= PM_TRANS_FLAG_NOLOCK;
 				break;
 			case 'q':
-				config->quiet = 1;
+				config->quiet++;
 				break;
 			case 'r':
 				config->rootdir = strdup(optarg);
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index cb0b8b1..1c3ba32 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -676,14 +676,21 @@ static int sync_trans(alpm_list_t *targets)
 		alpm_list_t *i;
 		for(i = packages; i; i = alpm_list_next(i)) {
 			pmpkg_t *pkg = alpm_list_getdata(i);
-			pmdb_t *db = alpm_pkg_get_db(pkg);
-			const char *dburl = alpm_db_get_url(db);
-			if(dburl) {
-				printf("%s/%s\n", dburl, alpm_pkg_get_filename(pkg));
+			const char *pkgname = alpm_pkg_get_name(pkg);
+			if(!config->quiet) {
+				pmdb_t *db = alpm_pkg_get_db(pkg);
+				const char *dburl = alpm_db_get_url(db);
+				if(dburl) {
+					printf("%s/%s\n", dburl, alpm_pkg_get_filename(pkg));
+				} else {
+					/* can't use WARNING here, we don't show warnings in -Sp... */
+					pm_fprintf(stderr, PM_LOG_ERROR, _("no database for package: %s\n"),
+							pkgname);
+				}
+			} else if(config->quiet == 1) {
+				printf("%s %s\n", pkgname, alpm_pkg_get_version(pkg));
 			} else {
-				/* can't use WARNING here, we don't show warnings in -Sp... */
-				pm_fprintf(stderr, PM_LOG_ERROR, _("no database for package: %s\n"),
-						alpm_pkg_get_name(pkg));
+				printf("%s\n", pkgname);
 			}
 
 		}
-- 
1.6.3.3



More information about the pacman-dev mailing list