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