#146 Suppress tracebacks for "expected" errors
Merged 2 years ago by zbyszek. Opened 2 years ago by zbyszek.
fedora-rust/ zbyszek/rust2rpm suppress-tracebacks  into  master

file modified
+8 -2
@@ -347,7 +347,7 @@ 

          parser.error("required crate/path argument missing")

  

      crate, diff, metadata, doc_files, license_files = make_diff_metadata(

-       args.crate, args.version, patch=args.patch, store=args.store_crate)

+         args.crate, args.version, patch=args.patch, store=args.store_crate)

  

      JINJA_ENV.globals["normalize_deps"] = normalize_deps

      JINJA_ENV.globals["to_list"] = to_list
@@ -468,4 +468,10 @@ 

                  fobj.writelines(diff)

  

  if __name__ == "__main__":

-     main()

+     try:

+         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}')

We shouldn't crash when network communication fails, or when a subprocess fails.
The traceback is unsightly, and causes bug reports to be files. Let's just print
the error.

$ PYTHONPATH=$HOME/python/rust2rpm python -m rust2rpm ./asdfasdf.asdf
error: the manifest-path must be a path to a Cargo.toml file
Subcommand failed with code 101: cargo read-manifest --manifest-path=./asdfasdf.asdf
$ PYTHONPATH=$HOME/python/rust2rpm python -m rust2rpm asdfasdf
Failed to download metadata: 404 Client Error: Not Found for url: https://crates.io/api/v1/crates/asdfasdf/versions

Fixes #145.

(This does the relatively easy thing of printing the original message. In
principle we could try to figure out what the exact error was and print uniform
error messages. But that'd be quite a lot of work, and fairly brittle, because
we'd need to cover all possible errors. So let's do this thing which should
be good enough in 95% of cases.)

Nobody wants to review this, or at least nobody wanted to make any comments. I think this is the right thing to, so I'll just merge it.

rebased onto afbee03

2 years ago

Pull-Request has been merged by zbyszek

2 years ago
Metadata