[pacman-dev] [PATCH 4/6] pacman: add --confirm option

Andrew Gregory andrew.gregory.8 at gmail.com
Wed Oct 8 06:39:05 UTC 2014


--confirm cancels the effect of a previous --noconfirm.
This makes it easier for scripts to default to --noconfirm
but allow users to override it.

Signed-off-by: Andrew Gregory <andrew.gregory.8 at gmail.com>
---
 doc/pacman.8.txt      | 3 +++
 src/pacman/conf.h     | 1 +
 src/pacman/pacman.c   | 5 +++++
 test/pacman/pmtest.py | 6 +++---
 4 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/doc/pacman.8.txt b/doc/pacman.8.txt
index 45741b4..4041a06 100644
--- a/doc/pacman.8.txt
+++ b/doc/pacman.8.txt
@@ -177,6 +177,9 @@ Options
 	Bypass any and all ``Are you sure?'' messages. It's not a good idea to do
 	this unless you want to run pacman from a script.
 
+*\--confirm*::
+	Cancels the effects of a previous '\--noconfirm'.
+
 
 Transaction Options (apply to '-S', '-R' and '-U')
 --------------------------------------------------
diff --git a/src/pacman/conf.h b/src/pacman/conf.h
index 8aed6d6..3141e2c 100644
--- a/src/pacman/conf.h
+++ b/src/pacman/conf.h
@@ -131,6 +131,7 @@ enum {
 enum {
 	OP_LONG_FLAG_MIN = 1000,
 	OP_NOCONFIRM,
+	OP_CONFIRM,
 	OP_CONFIG,
 	OP_IGNORE,
 	OP_DEBUG,
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index 5cac37c..3d1406b 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -205,6 +205,7 @@ static void usage(int op, const char * const myname)
 		addlist(_("      --gpgdir <path>  set an alternate home directory for GnuPG\n"));
 		addlist(_("      --logfile <path> set an alternate log file\n"));
 		addlist(_("      --noconfirm      do not ask for any confirmation\n"));
+		addlist(_("      --confirm        always ask for confirmation\n"));
 	}
 	list = alpm_list_msort(list, alpm_list_count(list), options_cmp);
 	for(i = list; i; i = alpm_list_next(i)) {
@@ -456,6 +457,9 @@ static int parsearg_global(int opt)
 		case OP_NOCONFIRM:
 			config->noconfirm = 1;
 			break;
+		case OP_CONFIRM:
+			config->noconfirm = 0;
+			break;
 		case OP_DBPATH:
 		case 'b':
 			free(config->dbpath);
@@ -858,6 +862,7 @@ static int parseargs(int argc, char *argv[])
 		{"downloadonly", no_argument,     0, OP_DOWNLOADONLY},
 		{"refresh",    no_argument,       0, OP_REFRESH},
 		{"noconfirm",  no_argument,       0, OP_NOCONFIRM},
+		{"confirm",    no_argument,       0, OP_CONFIRM},
 		{"config",     required_argument, 0, OP_CONFIG},
 		{"ignore",     required_argument, 0, OP_IGNORE},
 		{"assume-installed",     required_argument, 0, OP_ASSUMEINSTALLED},
diff --git a/test/pacman/pmtest.py b/test/pacman/pmtest.py
index 7ed30eb..3682963 100644
--- a/test/pacman/pmtest.py
+++ b/test/pacman/pmtest.py
@@ -234,13 +234,13 @@ def run(self, pacman):
                 "--log-file=%s" % os.path.join(self.root, "var/log/valgrind"),
                 "--suppressions=%s" % suppfile])
             self.addrule("FILE_EMPTY=var/log/valgrind")
-        cmd.extend([pacman["bin"],
+        cmd.extend([pacman["bin"], "--noconfirm",
             "--config", os.path.join(self.root, util.PACCONF),
             "--root", self.root,
             "--dbpath", os.path.join(self.root, util.PM_DBPATH),
             "--cachedir", os.path.join(self.root, util.PM_CACHEDIR)])
-        if not pacman["manual-confirm"]:
-            cmd.append("--noconfirm")
+        if pacman["manual-confirm"]:
+            cmd.append("--confirm")
         if pacman["debug"]:
             cmd.append("--debug=%s" % pacman["debug"])
         cmd.extend(shlex.split(self.args))
-- 
2.1.2


More information about the pacman-dev mailing list