summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Gregory <andrew.gregory.8@gmail.com>2014-10-06 16:45:10 -0400
committerAllan McRae <allan@archlinux.org>2014-10-13 12:54:29 +1000
commit01beca5df717252c7c9aa59bc705dc10a25ebdc8 (patch)
treeef37062e577f2441cc04c66b7fa4f853d200c088
parent7ddc967d7cf2b8de73095cb841ee2c5973a669e4 (diff)
downloadpacman-01beca5df717252c7c9aa59bc705dc10a25ebdc8.tar.xz
pacman: add --confirm option
--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@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--doc/pacman.8.txt3
-rw-r--r--src/pacman/conf.h1
-rw-r--r--src/pacman/pacman.c5
-rw-r--r--test/pacman/pmtest.py6
4 files changed, 12 insertions, 3 deletions
diff --git a/doc/pacman.8.txt b/doc/pacman.8.txt
index eacf1b31..74436155 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 8aed6d6b..3141e2c3 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 5cac37ca..3d1406bb 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 7ed30eb9..36829632 100644
--- a/test/pacman/pmtest.py
+++ b/test/pacman/pmtest.py
@@ -234,13 +234,13 @@ class pmtest(object):
"--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))