# [`distro-url`][]
Print [Linux][] [distro][] info, including [image][] [URL][]s.
Note that the latest versions are hard coded, which means they will need to be
manually updated, which means they may be out of date.
[`distro-url`]: https://git.rcrnstn.net/rcrnstn/distro-url
[Linux]: https://en.wikipedia.org/wiki/Linux
[distro]: https://en.wikipedia.org/wiki/Linux_distribution
[image]: https://en.wikipedia.org/wiki/Optical_disc_image
[URL]: https://en.wikipedia.org/wiki/URL
## Usage
```
distro-url [guess] [<distro> [<variant> [<arch> [<codename> [<version> [<mirror>]]]]]]
```
- `guess`: Optional verbatim string, switching from the default filter mode
to guess mode. Filter mode interprets the rest of the parameters as
[glob][]s (defaulting to `*`, matching everything) to filter an internal
list of known good parameter combinations. Guess mode interprets the rest
of the parameters as fixed strings (defaulting to sensible values for the
given `<distro>`) and will do its best to construct a [URL][] out of them.
- `<distro>`: The [distro][] to print the [URL][] for.
- `<variant>`, `<arch>`, `<codename>`, `<version>`: Optional parameters to
select a different [image][] than the default.
- `<mirror>`: Optional override of the default [mirror][].
[glob]: https://en.wikipedia.org/wiki/Glob_(programming)
[mirror]: https://en.wikipedia.org/wiki/Mirror_site
## Dependencies
- [POSIX][] [shell][].
- `column`, optional, for formatting.
[POSIX]: https://en.wikipedia.org/wiki/POSIX
[shell]: https://en.wikipedia.org/wiki/Unix_shell
## Examples
```sh
$ distro-url debian netinst
DISTRO VARIANT ARCH CODENAME VERSION URL
debian netinst amd64 trixie 13.5.0 https://cdimage.debian.org/debian-cd/13.5.0/amd64/iso-cd/debian-13.5.0-amd64-netinst.iso
debian netinst arm64 trixie 13.5.0 https://cdimage.debian.org/debian-cd/13.5.0/arm64/iso-cd/debian-13.5.0-arm64-netinst.iso
debian netinst armhf trixie 13.5.0 https://cdimage.debian.org/debian-cd/13.5.0/armhf/iso-cd/debian-13.5.0-armhf-netinst.iso
debian netinst ppc64el trixie 13.5.0 https://cdimage.debian.org/debian-cd/13.5.0/ppc64el/iso-cd/debian-13.5.0-ppc64el-netinst.iso
debian netinst riscv64 trixie 13.5.0 https://cdimage.debian.org/debian-cd/13.5.0/riscv64/iso-cd/debian-13.5.0-riscv64-netinst.iso
debian netinst s390x trixie 13.5.0 https://cdimage.debian.org/debian-cd/13.5.0/s390x/iso-cd/debian-13.5.0-s390x-netinst.iso
$ distro-url '*' '*raspi*'
DISTRO VARIANT ARCH CODENAME VERSION URL
debian raspi arm64 trixie 13.5.0 https://cloud.debian.org/images/cloud/trixie/daily/latest/debian-13-raspi-arm64-daily.tar.xz
ubuntu desktop-raspi arm64 resolute 26.04 https://cdimage.ubuntu.com/ubuntu/releases/resolute/release/ubuntu-26.04-preinstalled-desktop-arm64+raspi.img.xz
ubuntu server-raspi arm64 resolute 26.04 https://cdimage.ubuntu.com/ubuntu/releases/resolute/release/ubuntu-26.04-preinstalled-server-arm64+raspi.img.xz
edubuntu desktop-raspi arm64 resolute 26.04 https://cdimage.ubuntu.com/edubuntu/releases/resolute/release/edubuntu-26.04-preinstalled-desktop-arm64+raspi.img.xz
$ distro-url guess debian inst arm64 unknown 99.0.0
DISTRO VARIANT ARCH CODENAME VERSION URL
debian inst arm64 unknown 99.0.0 https://cdimage.debian.org/debian-cd/99.0.0/arm64/iso-dvd/debian-99.0.0-arm64-DVD-1.iso
```
## License
Licensed under the [ISC License][] unless otherwise noted, see the
[`LICENSE`][] file.
[ISC License]: https://choosealicense.com/licenses/isc
[`LICENSE`]: LICENSE