Supress tracebacks for "expected" exceptions in more places
afbee03f26
tried to suppress tracebacks, but I was testing it by calling
'PYTHONPATH=… python -m rust2rpm' and completely missed the fact that the
setuptools entrypoint wrapper calls main() directly and is not covered by
this.
Also, the same should be done for cargo-inspector.
This commit is contained in:
parent
1b5ad32178
commit
aa849b8aa5
2 changed files with 18 additions and 7 deletions
|
@ -299,6 +299,20 @@ def detect_rpmautospec(default_target, spec_file):
|
||||||
autochangelog_re = r"^\s*%(?:autochangelog|\{\??autochangelog\})\b"
|
autochangelog_re = r"^\s*%(?:autochangelog|\{\??autochangelog\})\b"
|
||||||
return any(re.match(autochangelog_re, line) for line in text.splitlines())
|
return any(re.match(autochangelog_re, line) for line in text.splitlines())
|
||||||
|
|
||||||
|
|
||||||
|
@contextlib.contextmanager
|
||||||
|
def exit_on_common_errors():
|
||||||
|
"""Suppress tracebacks on common "expected" exceptions"""
|
||||||
|
try:
|
||||||
|
yield
|
||||||
|
except requests.exceptions.HTTPError as e:
|
||||||
|
sys.exit(f'Failed to download metadata: {e}')
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
cmd = shlex.join(e.cmd)
|
||||||
|
sys.exit(f'Subcommand failed with code {e.returncode}: {cmd}')
|
||||||
|
|
||||||
|
|
||||||
|
@exit_on_common_errors()
|
||||||
def main():
|
def main():
|
||||||
default_target = get_default_target()
|
default_target = get_default_target()
|
||||||
|
|
||||||
|
@ -473,11 +487,6 @@ def main():
|
||||||
with open(patch_file, "w") as fobj:
|
with open(patch_file, "w") as fobj:
|
||||||
fobj.writelines(diff)
|
fobj.writelines(diff)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
try:
|
main()
|
||||||
main()
|
|
||||||
except requests.exceptions.HTTPError as e:
|
|
||||||
sys.exit(f'Failed to download metadata: {e}')
|
|
||||||
except subprocess.CalledProcessError as e:
|
|
||||||
cmd = shlex.join(e.cmd)
|
|
||||||
sys.exit(f'Subcommand failed with code {e.returncode}: {cmd}')
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ import sys
|
||||||
|
|
||||||
from . import Metadata
|
from . import Metadata
|
||||||
from .metadata import normalize_deps, Dependency
|
from .metadata import normalize_deps, Dependency
|
||||||
|
from .__main__ import exit_on_common_errors
|
||||||
|
|
||||||
|
|
||||||
def _get_binaries(cargo_toml):
|
def _get_binaries(cargo_toml):
|
||||||
|
@ -49,6 +50,7 @@ def _cargo_toml(source_path, path, exclude_vendor=True):
|
||||||
raise FileNotFoundError(f'Cargo.toml not found for binary {binary_or_cargo_toml}')
|
raise FileNotFoundError(f'Cargo.toml not found for binary {binary_or_cargo_toml}')
|
||||||
|
|
||||||
|
|
||||||
|
@exit_on_common_errors()
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
group = parser.add_mutually_exclusive_group(required=True)
|
group = parser.add_mutually_exclusive_group(required=True)
|
||||||
|
|
Loading…
Reference in a new issue