cros_deploy: Warn when the user seems to forget cros workon
This commit add warning messages to help us notice that we forgot
to run cros workon before running cros deploy.
BUG=None
TEST=cros deploy --board=$BOARD WORKED_ON_PACKAGE NOT_WORKED_ON_PACKAGE
TEST=cros_workon --board=$BOARD --all start && cros deploy --board=$BOARD PACKAGES
Change-Id: I05922cc67767c8b64ee7003eb71752b7186119a5
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2373849
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Kimiyuki Onaka <kimiyuki@google.com>
Commit-Queue: Kimiyuki Onaka <kimiyuki@google.com>
diff --git a/cli/deploy.py b/cli/deploy.py
index 5a71657..f981c90 100644
--- a/cli/deploy.py
+++ b/cli/deploy.py
@@ -28,6 +28,7 @@
from chromite.lib import portage_util
from chromite.lib import remote_access
from chromite.lib import dlc_lib
+from chromite.lib import workon_helper
try:
import portage
except ImportError:
@@ -1183,6 +1184,15 @@
logging.notice('No packages to %s', action_str)
return
+ # Warn when the user seems to forget `cros workon start`.
+ worked_on_cps = workon_helper.WorkonHelper(sysroot).ListAtoms()
+ for package in listed:
+ cp = portage_util.SplitCPV(package).cp
+ if cp not in worked_on_cps:
+ logging.warning(
+ 'Are you intentionally deploying unmodified packages, or did '
+ 'you forget to run `cros workon --board=$BOARD start %s`?', cp)
+
logging.notice('These are the packages to %s:', action_str)
for i, pkg in enumerate(pkgs):
logging.notice('%s %d) %s', '*' if pkg in listed else ' ', i + 1, pkg)