Index: shell/chromite_env.py |
diff --git a/shell/chromite_env.py b/shell/chromite_env.py |
index 682b3e8d9048d924157414a11f98d23ab0fd6538..777425a4b180fa6e9182424be184e5c8f33bba2d 100644 |
--- a/shell/chromite_env.py |
+++ b/shell/chromite_env.py |
@@ -10,11 +10,7 @@ paths and defaults. It includes methods for querying the environemnt. |
(For now this is just a placeholder to illustrate the concept) |
""" |
-import os |
-import signal |
-import utils |
from chromite.lib import operation |
-from chromite.lib import cros_subprocess |
class ChromiteError(Exception): |
@@ -46,79 +42,3 @@ class ChromiteEnv: |
"""Returns the current operation in progress |
""" |
return self._oper |
- |
- def RunScript(self, name, cmd, args, env=None, shell_vars=None): |
- """Run a legacy script in src/scripts. |
- |
- This is the only place in chromite where legacy scripts are invoked. We |
- aim to replace all calls to this method with a proper python alternative |
- complete with unit tests. For now this allows chromite to do its job. |
- |
- We'll ignore signal.SIGINT before calling the child. This is the desired |
- behavior if we know our child will handle Ctrl-C. If we don't do this, I |
- think we and the child will both get Ctrl-C at the same time, which means |
- we'll forcefully kill the child. |
- |
- The specified command will be executed through the shell. |
- |
- We'll put CWD as src/scripts when running the commands, since many of these |
- legacy commands live in src/scripts. |
- |
- This code has come from RunCommand but we have removed the so-far unused |
- extra features like input, entering chroot and various controls. |
- |
- Also removed is argument handling. This function does not handle arguments |
- with spaces in them. Also it does not escape any special characters that |
- are passed in. The command is executed with 'sh -c ...' so the limitations |
- of that must be kept in mind. |
- |
- Args: |
- name: A name for the script, as might be displayed to the user. |
- cmd: Command to run. Should be input to subprocess.Popen. |
- args: list of arguments to pass to command. |
- env: If non-None, this is the environment for the new process. |
- shell_vars: If non-None, this is the shell variables to define before |
- running the script. |
- |
- Raises: |
- ChromiteError(msg) if subprocess return code is not 0. |
- Args: |
- msg: Error message |
- |
- TODO(sjg): Can we remove shell_vars and require callers to use env? |
- And _SplitEnvFromArgs already does this! |
- """ |
- #TODO(sjg): Make printing the operation name optional |
- self._oper.Outline(name) |
- if shell_vars is None: |
- shell_vars = '' |
- |
- # In verbose mode we don't try to separate stdout and stderr since we |
- # can't be sure we will interleave output correctly for verbose |
- # subprocesses. |
- stderr = cros_subprocess.PIPE_PTY |
- if self._oper.verbose: |
- stderr = cros_subprocess.STDOUT |
- |
- child = cros_subprocess.Popen( |
- ["sh", "-c", shell_vars + ' ' + cmd + ' ' + ' '.join(args)], |
- stderr=stderr, |
- env=env, |
- cwd=os.path.join(utils.SRCROOT_PATH, 'src', 'scripts')) |
- old_sigint = signal.signal(signal.SIGINT, signal.SIG_IGN) |
- |
- try: |
- child.CommunicateFilter(self._oper.Output) |
- finally: |
- signal.signal(signal.SIGINT, old_sigint) |
- |
- if child.returncode != 0: |
- msg = ("Error: command '%s' exited with error code %d" % |
- (cmd, child.returncode)) |
- self._oper.Outline(msg) |
- raise ChromiteError(msg) |
- elif self._oper.WereErrorsDetected(): |
- self._oper.Outline("Error output detected, but command indicated "\ |
- "success.") |
- |
- self._oper.FinishOutput() |