[pacman-dev] Add --nolist option for transactions

me at dk0.us me at dk0.us
Sat Jul 7 00:32:17 UTC 2018


From: Dmitry Kudriavtsev <me at dk0.us>

Adds a --nolist option for package transactions. This option removes the list
display of packages to be installed or removed.

Signed-off-by: Dmitry Kudriavtsev <me at dk0.us>
---
 src/pacman/conf.h   | 4 +++-
 src/pacman/pacman.c | 5 +++++
 src/pacman/remove.c | 7 +++++--
 src/pacman/sync.c   | 6 ++++--
 4 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/pacman/conf.h b/src/pacman/conf.h
index ababf2e0..1615d974 100644
--- a/src/pacman/conf.h
+++ b/src/pacman/conf.h
@@ -50,6 +50,7 @@ typedef struct __config_t {
 	unsigned short help;
 	unsigned short noconfirm;
 	unsigned short noprogressbar;
+	unsigned short nolist;
 	unsigned short logmask;
 	unsigned short print;
 	unsigned short checkspace;
@@ -209,7 +210,8 @@ enum {
 	OP_DOWNLOADONLY,
 	OP_REFRESH,
 	OP_ASSUMEINSTALLED,
-	OP_DISABLEDLTIMEOUT
+	OP_DISABLEDLTIMEOUT,
+	OP_NOLIST
 };
 
 /* clean method */
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index fe54793e..18505bf6 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -204,6 +204,7 @@ static void usage(int op, const char * const myname)
 				addlist(_("      --dbonly         only modify database entries, not package files\n"));
 				addlist(_("      --noprogressbar  do not show a progress bar when downloading files\n"));
 				addlist(_("      --noscriptlet    do not execute the install scriptlet if one exists\n"));
+				addlist(_("      --nolist         do not list packages before performing operation\n"));
 				addlist(_("  -p, --print          print the targets instead of performing the operation\n"));
 				addlist(_("      --print-format <string>\n"
 				          "                       specify how the targets should be printed\n"));
@@ -652,6 +653,9 @@ static int parsearg_trans(int opt)
 		case OP_ASSUMEINSTALLED:
 			parsearg_util_addlist(&(config->assumeinstalled));
 			break;
+		case OP_NOLIST:
+			config->nolist = 1;
+			break;
 		default:
 			return 1;
 	}
@@ -964,6 +968,7 @@ static int parseargs(int argc, char *argv[])
 		{"dbonly",     no_argument,       0, OP_DBONLY},
 		{"color",      required_argument, 0, OP_COLOR},
 		{"disable-download-timeout", no_argument, 0, OP_DISABLEDLTIMEOUT},
+		{"nolist",     no_argument,       0, OP_NOLIST},
 		{0, 0, 0, 0}
 	};
 
diff --git a/src/pacman/remove.c b/src/pacman/remove.c
index a2269ed8..5df45c69 100644
--- a/src/pacman/remove.c
+++ b/src/pacman/remove.c
@@ -164,8 +164,11 @@ int pacman_remove(alpm_list_t *targets)
 	}
 
 	/* print targets and ask user confirmation */
-	display_targets();
-	printf("\n");
+	if(!config->nolist) {
+		display_targets();
+		printf("\n");
+	}
+
 	if(yesno(_("Do you want to remove these packages?")) == 0) {
 		retval = 1;
 		goto cleanup;
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index 3c6be89d..1e0c6c91 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -793,8 +793,10 @@ int sync_prepare_execute(void)
 		goto cleanup;
 	}
 
-	display_targets();
-	printf("\n");
+	if(!config->nolist) {
+		display_targets();
+		printf("\n");
+	}
 
 	int confirm;
 	if(config->op_s_downloadonly) {
-- 
2.18.0


More information about the pacman-dev mailing list