1 |
Since the emaint --fix merges uses emerge --ask, add |
2 |
a -y, --yes option to use --ask=n instead. |
3 |
|
4 |
Bug: https://bugs.gentoo.org/766767 |
5 |
Signed-off-by: Zac Medico <zmedico@g.o> |
6 |
--- |
7 |
lib/portage/emaint/modules/merges/__init__.py | 14 ++++++++++++-- |
8 |
lib/portage/emaint/modules/merges/merges.py | 11 +++++++---- |
9 |
man/emaint.1 | 6 +++++- |
10 |
3 files changed, 24 insertions(+), 7 deletions(-) |
11 |
|
12 |
diff --git a/lib/portage/emaint/modules/merges/__init__.py b/lib/portage/emaint/modules/merges/__init__.py |
13 |
index 89aa758a0..449f39dce 100644 |
14 |
--- a/lib/portage/emaint/modules/merges/__init__.py |
15 |
+++ b/lib/portage/emaint/modules/merges/__init__.py |
16 |
@@ -1,4 +1,4 @@ |
17 |
-# Copyright 2005-2014 Gentoo Foundation |
18 |
+# Copyright 2005-2021 Gentoo Authors |
19 |
# Distributed under the terms of the GNU General Public License v2 |
20 |
|
21 |
doc = """Scan for failed merges and fix them.""" |
22 |
@@ -26,7 +26,17 @@ module_spec = { |
23 |
'action': 'store_true', |
24 |
'func': 'purge' |
25 |
} |
26 |
- } |
27 |
+ }, |
28 |
+ 'opt_desc': { |
29 |
+ 'yes': { |
30 |
+ "short": "-y", |
31 |
+ "long": "--yes", |
32 |
+ "help": ("(merges submodule only): Do not prompt for " |
33 |
+ "emerge invocations"), |
34 |
+ "action": "store_true", |
35 |
+ "dest": "yes", |
36 |
+ } |
37 |
+ }, |
38 |
} |
39 |
} |
40 |
} |
41 |
diff --git a/lib/portage/emaint/modules/merges/merges.py b/lib/portage/emaint/modules/merges/merges.py |
42 |
index 775dc59d2..d60916f1e 100644 |
43 |
--- a/lib/portage/emaint/modules/merges/merges.py |
44 |
+++ b/lib/portage/emaint/modules/merges/merges.py |
45 |
@@ -1,4 +1,4 @@ |
46 |
-# Copyright 2005-2020 Gentoo Authors |
47 |
+# Copyright 2005-2021 Gentoo Authors |
48 |
# Distributed under the terms of the GNU General Public License v2 |
49 |
|
50 |
import portage |
51 |
@@ -186,7 +186,7 @@ class MergesHandler: |
52 |
pkg_atoms.add(pkg_atom) |
53 |
|
54 |
|
55 |
- def _emerge_pkg_atoms(self, module_output, pkg_atoms): |
56 |
+ def _emerge_pkg_atoms(self, module_output, pkg_atoms, yes=False): |
57 |
""" |
58 |
Emerge the specified packages atoms. |
59 |
|
60 |
@@ -194,6 +194,8 @@ class MergesHandler: |
61 |
@type module_output: Class |
62 |
@param pkg_atoms: packages atoms to emerge |
63 |
@type pkg_atoms: set |
64 |
+ @param yes: do not prompt for emerge invocations |
65 |
+ @type yes: bool |
66 |
@rtype: list |
67 |
@return: List of results |
68 |
""" |
69 |
@@ -206,7 +208,7 @@ class MergesHandler: |
70 |
portage._python_interpreter, |
71 |
'-b', |
72 |
os.path.join(EPREFIX or '/', 'usr', 'bin', 'emerge'), |
73 |
- '--ask', |
74 |
+ '--ask=n' if yes else '--ask', |
75 |
'--quiet', |
76 |
'--oneshot', |
77 |
'--complete-graph=y' |
78 |
@@ -265,7 +267,8 @@ class MergesHandler: |
79 |
errors.append(', '.join(sorted(failed_pkgs))) |
80 |
return (False, errors) |
81 |
self._remove_failed_dirs(failed_pkgs) |
82 |
- results = self._emerge_pkg_atoms(module_output, pkg_atoms) |
83 |
+ results = self._emerge_pkg_atoms(module_output, pkg_atoms, |
84 |
+ yes=kwargs.get('options', {}).get("yes", False)) |
85 |
# list any new failed merges |
86 |
for pkg in sorted(self._scan()): |
87 |
results.append("'%s' still found as a failed merge." % pkg) |
88 |
diff --git a/man/emaint.1 b/man/emaint.1 |
89 |
index d244756e9..c9f8ab939 100644 |
90 |
--- a/man/emaint.1 |
91 |
+++ b/man/emaint.1 |
92 |
@@ -1,4 +1,4 @@ |
93 |
-.TH "EMAINT" "1" "Jan 2017" "Portage VERSION" "Portage" |
94 |
+.TH "EMAINT" "1" "Jan 2021" "Portage VERSION" "Portage" |
95 |
.SH NAME |
96 |
emaint \- performs package management related system health checks and maintenance |
97 |
.SH SYNOPSIS |
98 |
@@ -82,6 +82,10 @@ OPTION |
99 |
.BR \-t \ \fINUM\fR,\ \-\-time \ \fINUM\fR |
100 |
Changes the minimum age \fINUM\fR (in days) of the logs to be listed or |
101 |
deleted. |
102 |
+.SH OPTIONS merges command only |
103 |
+.TP |
104 |
+.BR \-y ", " \-\-yes |
105 |
+Do not prompt for emerge invocations. |
106 |
.SH OPTIONS sync command only |
107 |
.TP |
108 |
.BR \-a ", " \-\-auto |
109 |
-- |
110 |
2.26.2 |