The --autounmask-only parameter will display autounmask messages,
perform autounmasking (in accordance with the other --autounmask-*
parameters), and exit with success (return value 0).
---
 man/emerge.1           |  6 ++++++
 pym/_emerge/actions.py |  4 ++++
 pym/_emerge/main.py    | 11 +++++++++++
 3 files changed, 21 insertions(+)

diff --git a/man/emerge.1 b/man/emerge.1
index c03f044..05b2a01 100644
--- a/man/emerge.1
+++ b/man/emerge.1
@@ -361,6 +361,12 @@ the specified configuration file(s), or enable the
 \fBEMERGE_DEFAULT_OPTS\fR variable may be used to
 disable this option by default in \fBmake.conf\fR(5).
 .TP
+.BR "\-\-autounmask\-only [ y | n ]"
+Instead of doing any package building, just unmask
+packages and generate package.use settings as necessary
+to satisfy dependencies. This option is disabled by
+default.
+.TP
 .BR "\-\-autounmask\-unrestricted\-atoms [ y | n ]"
 If \-\-autounmask is enabled, keyword and mask changes
 using the \'=\' operator will be written. With this
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py
index a080ba4..1c59abd 100644
--- a/pym/_emerge/actions.py
+++ b/pym/_emerge/actions.py
@@ -327,6 +327,10 @@ def action_build(settings, trees, mtimedb,
                        display_missing_pkg_set(root_config, e.value)
                        return 1
 
+               if "--autounmask-only" in myopts:
+                       mydepgraph.display_problems()
+                       return 0
+
                if not success:
                        mydepgraph.display_problems()
                        return 1
diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index 5a8b93c..5dbafee 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -127,6 +127,7 @@ def insert_optional_args(args):
                '--alert'                : y_or_n,
                '--ask'                  : y_or_n,
                '--autounmask'           : y_or_n,
+               '--autounmask-only'      : y_or_n,
                '--autounmask-keep-masks': y_or_n,
                '--autounmask-unrestricted-atoms' : y_or_n,
                '--autounmask-write'     : y_or_n,
@@ -323,6 +324,11 @@ def parse_opts(tmpcmdline, silent=False):
                        "choices" : true_y_or_n
                },
 
+               "--autounmask-only": {
+                       "help"    : "only perform --autounmask",
+                       "choices" : true_y_or_n
+               },
+
                "--autounmask-unrestricted-atoms": {
                        "help"    : "write autounmask changes with >= atoms if 
possible",
                        "choices" : true_y_or_n
@@ -745,6 +751,11 @@ def parse_opts(tmpcmdline, silent=False):
        if myoptions.autounmask in true_y:
                myoptions.autounmask = True
 
+       if myoptions.autounmask_only in true_y:
+               myoptions.autounmask_only = True
+       else:
+               myoptions.autounmask_only = None
+
        if myoptions.autounmask_unrestricted_atoms in true_y:
                myoptions.autounmask_unrestricted_atoms = True
 
-- 
2.4.10


Reply via email to