@classmethod<EOL><INDENT>def run_command(<EOL>cls,<EOL>cmd,  <EOL>show_stdout=True,  <EOL>cwd=None,  <EOL>on_returncode='<STR_LIT>',  <EOL>extra_ok_returncodes=None,  <EOL>command_desc=None,  <EOL>extra_environ=None,  <EOL>spinner=None  <EOL>):<EOL><DEDENT>
cmd = [cls.name] + cmd<EOL>try:<EOL><INDENT>return call_subprocess(cmd, show_stdout, cwd,<EOL>on_returncode=on_returncode,<EOL>extra_ok_returncodes=extra_ok_returncodes,<EOL>command_desc=command_desc,<EOL>extra_environ=extra_environ,<EOL>unset_environ=cls.unset_environ,<EOL>spinner=spinner)<EOL><DEDENT>except OSError as e:<EOL><INDENT>if e.errno == errno.ENOENT:<EOL><INDENT>raise BadCommand(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>' % (cls.name, cls.name))<EOL><DEDENT>else:<EOL><INDENT>raise<EOL><DEDENT><DEDENT>
Run a VCS subcommand
This is simply a wrapper around call_subprocess that adds the VCS
command name, and checks that the VCS is available