Index: shell/subcmds/workon_cmd.py |
diff --git a/shell/subcmds/workon_cmd.py b/shell/subcmds/workon_cmd.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..dcebeab7b176539eee942681a7db65c751c34066 |
--- /dev/null |
+++ b/shell/subcmds/workon_cmd.py |
@@ -0,0 +1,42 @@ |
+# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+"""Implementation of the 'workon' chromite command.""" |
+ |
+ |
+import chromite.lib.cros_build_lib as cros_lib |
+from chromite.shell import subcmd |
+ |
+ |
+class WorkonCmd(subcmd.WrappedChrootCmd): |
+ """Run cros_workon.""" |
+ |
+ def __init__(self): |
+ """WorkonCmd constructor.""" |
+ # Just call the WrappedChrootCmd superclass, which does most of the work. |
+ # Note that host version uses "./", since it's in src/scripts and not in the |
+ # path... |
+ super(WorkonCmd, self).__init__( |
+ ['cros_workon-%s'], ['./cros_workon', '--host'], |
+ need_args=True |
+ ) |
+ |
+ def Run(self, raw_argv, *args, **kwargs): |
+ """Run the command. |
+ |
+ We do just a slight optimization to help users with a common typo. |
+ |
+ Args: |
+ raw_argv: Command line arguments, including this command's name, but not |
+ the chromite command name or chromite options. |
+ args: The rest of the positional arguments. See _DoWrappedChrootCommand. |
+ kwargs: The keyword arguments. See _DoWrappedChrootCommand. |
+ """ |
+ # Slight optimization, just since I do this all the time... |
+ if len(raw_argv) >= 2: |
+ if raw_argv[1] in ('start', 'stop', 'list', 'list-all', 'iterate'): |
+ cros_lib.Warning('OOPS, looks like you forgot a board name. Pick one.') |
+ raw_argv = raw_argv[:1] + [''] + raw_argv[1:] |
+ |
+ super(WorkonCmd, self).Run(raw_argv, *args, **kwargs) |