Known subclasses: gbp.command_wrappers.CatenateTarArchive, gbp.command_wrappers.CatenateZipArchive, gbp.command_wrappers.DpkgSourceExtract, gbp.command_wrappers.GitCommand, gbp.command_wrappers.PackTarArchive, gbp.command_wrappers.RemoveTree, gbp.command_wrappers.RunAtCommand, gbp.command_wrappers.UnpackTarArchive, gbp.command_wrappers.UnpackZipArchive, gbp.deb.DpkgCompareVersions, gbp.pkg.pristinetar.PristineTar

Wraps a shell command, so we don't have to store any kind of command
line options in one of the git-buildpackage commands

Note that it does not do any shell quoting even with shell=True so
you have to quote arguments yourself if necessary.

If cmd doesn't contain a path component it will be looked up in $PATH.
Method __init__ Undocumented
Method __call__ Run the command and raise exception on errors
Method call Like L{__call__} but let the caller handle the return status.
Static Method _f Build error string template
Method _reset_state Undocumented
Method __call Wraps subprocess.call so we can be verbose and fix Python's SIGPIPE handling
Method _log_err Log an error message
Method _format_err Log an error message
@staticmethod
def _f(format, *args):
Build error string template

'%' expansion is performed while curly braces in args are
quoted so we don't accidentally try to expand them when
printing an error message later that uses one of our
predefined error variables stdout, stderr, stderr_or_reason
and self.err_reason.

>>> Command._f("foo %s", "bar")
'foo bar'
>>> Command._f("{foo} %s %s", "bar", "baz")
'{foo} bar baz'
>>> Command._f("{foo} bar")
'{foo} bar'
def _reset_state(self):
Undocumented
def __call(self, args):
Wraps subprocess.call so we can be verbose and fix Python's
SIGPIPE handling
def _log_err(self):
Log an error message
def _format_err(self):
Log an error message

This allows to replace stdout, stderr and err_reason in
the self.run_error.
def __call__(self, args=[], quiet=False):
Run the command and raise exception on errors

If run quietly it will not print an error message via the
L{gbp.log} logging API.

Whether the command prints anything to stdout/stderr depends on
the I{capture_stderr}, I{capture_stdout} instance variables.

All errors will be reported as subclass of the
L{CommandExecFailed} exception including a non zero exit
status of the run command.

@param args: additional command line arguments
@type  args: C{list} of C{strings}
@param quiet: don't log failed execution to stderr. Mostly useful during
    unit testing
@type quiet: C{bool}

>>> Command("/bin/true")(["foo", "bar"])
>>> Command("/foo/bar")(quiet=True) # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
...
gbp.command_wrappers.CommandExecFailed
def call(self, args, quiet=True):
Like L{__call__} but let the caller handle the return status.

Only raise L{CommandExecFailed} if we failed to launch the command
at all (i.e. if it does not exist) not if the command returned
nonzero.

Logs errors using L{gbp.log} by default.

@param args: additional command line arguments
@type  args: C{list} of C{strings}
@param quiet: don't log failed execution to stderr. Mostly useful during
    unit testing
@type quiet: C{bool}
@returns: the exit status of the run command
@rtype: C{int}

>>> Command("/bin/true").call(["foo", "bar"])
0
>>> Command("/foo/bar").call(["foo", "bar"]) # doctest:+ELLIPSIS
Traceback (most recent call last):
...
gbp.command_wrappers.CommandExecFailed: execution failed: ...
>>> c = Command("/bin/true", capture_stdout=True,
...             extra_env={'LC_ALL': 'C'})
>>> c.call(["--version"])
0
>>> c.stdout.startswith('true')
True
>>> c = Command("/bin/false", capture_stdout=True,
...             extra_env={'LC_ALL': 'C'})
>>> c.call(["--help"])
1
>>> c.stdout.startswith('Usage:')
True
API Documentation for git-buildpackage, generated by pydoctor at 2019-11-14 12:49:35.