parallel_emerge: Add dry run option and log emerge command.
Add the option to do a dryrun to just see what emerge command would
have been run.
Log the command it's about to run at info to make it accessible
but not visible by default.
BUG=b:199404652
TEST=cq, manual
Change-Id: Iaf8b01b05814086c231227484fbf2544f98c48fc
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3195104
Tested-by: Alex Klein <saklein@chromium.org>
Auto-Submit: Alex Klein <saklein@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Alex Klein <saklein@chromium.org>
diff --git a/scripts/parallel_emerge.py b/scripts/parallel_emerge.py
index 33a7a42..cfa9307 100644
--- a/scripts/parallel_emerge.py
+++ b/scripts/parallel_emerge.py
@@ -13,12 +13,14 @@
"""
import argparse
+import logging
import multiprocessing
import os
from chromite.lib import build_target_lib
from chromite.lib import commandline
from chromite.lib import constants
+from chromite.lib import cros_build_lib
class LookupBoardSysroot(argparse.Action):
@@ -88,6 +90,16 @@
default=multiprocessing.cpu_count(),
metavar='PARALLEL_JOBCOUNT',
)
+ parser.add_argument(
+ '-n',
+ '--dryrun',
+ '--dry-run',
+ dest='dry_run',
+ action='store_true',
+ default=False,
+ help='Print the emerge command that would have been run instead of '
+ 'actually running it.',
+ )
parser.add_argument(
'--retries',
@@ -149,4 +161,11 @@
for pkg in constants.OTHER_CHROME_PACKAGES:
emerge_args.append('--rebuild-exclude=%s' % pkg)
- os.execvp('emerge', ['emerge'] + emerge_args)
+ cmd = ['emerge'] + emerge_args
+ cmd_str = cros_build_lib.CmdToStr(cmd)
+ if parsed_args.get('dry_run'):
+ logging.notice('Would have run: %s', cmd_str)
+ return
+
+ logging.info('Running: %s', cmd_str)
+ os.execvp('emerge', cmd)