From: Dmitry Kudriavtsev <[email protected]>

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 <[email protected]>
---
 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

Reply via email to