Instead of throwing a long obnoxious traceback at the user if the value
supplied to -d/--distro is invalid do something nicer. For example:
```
$ ./src/script/build-with-container.py -d trixy -e build
usage: build-with-container.py [-h] [--help-build-steps]
build-with-container.py: error: argument --distro/-d: unknown distro: 'trixy' not in centos10, centos10stream, centos8, centos9, centos9stream, rocky9, rockylinux9, rocky10, rockylinux10, fedora41, fc41, fedora42, fc42, fedora43, fc43, ubuntu20.04, ubuntu-focal, focal, ubuntu22.04, ubuntu-jammy, jammy, ubuntu24.04, ubuntu-noble, noble, debian12, debian-bookworm, bookworm, debian13, debian-trixie, trixie
```
Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit
72f3ad9549e84bdba7bdfd97d2ede3c55e02f103)
@classmethod
def from_alias(cls, value):
- return cls.aliases()[value]
+ try:
+ return cls.aliases()[value]
+ except KeyError:
+ valid = ", ".join(sorted(cls.aliases()))
+ msg = f"unknown distro: {value!r} not in {valid}"
+ raise argparse.ArgumentTypeError(msg)
class DefaultImage(StrEnum):