wrun
wrun downloads, caches, and runs an executable,
with the same one command for multiple OS/architectures.
$ wrun --help
wrun downloads, caches, and runs executables.
OS and architecture matcher arguments for URLs to download and (if applicable) executables within archives can be used to construct command lines that work across multiple operating systems and architectures.
The OS and architecture wrun was built for are matched against the given matchers.
OS and architecture parts of the matcher may be globs.
Order of the matcher arguments is significant: the first match of each is chosen.
As a special case, a matcher argument with no matcher part is treated as if it was given with the matcher */*.
On Windows, .exe is automatically appended to any archive exe path resulting from a */ prefixed match.
URL fragments, if present, are treated as hashAlgo-hexDigest strings, and downloads are checked against them.
The first non-flag argument or -- terminates wrun arguments.
Remaining ones are passed to the downloaded executable.
Environment variables:
- WRUN_ARGS_FILE: path to file containing command line arguments to prepend, one per line
- WRUN_CACHE_HOME: cache location, defaults to wrun subdir in the user's cache dir
- WRUN_OS_ARCH: override OS/arch for matching
- WRUN_VERBOSE: output verbosity, false decreases, true increases
Usage:
wrun [flags] -- [executable arguments]
wrun [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
generate generate wrun command line arguments for various tools
help Help about any command
Flags:
-p, --archive-exe-path strings [OS/arch=]path to executable within archive matcher (separator always /, implies archive processing)
-n, --dry-run dry run, skip execution (but do download/set up cache)
-h, --help help for wrun
-t, --http-timeout duration HTTP client timeout (default 5m0s)
-u, --url strings [OS/arch=]URL matcher (at least one required)
-v, --version version for wrun
Use "wrun [command] --help" for more information about a command.
Installation
Prebuilt binaries are available in project releases, apt and yum package repositories at Packagecloud.
Prebuilt binaries are also available from PyPI,
in the wrun-py package,
installable for example with pip:
python3 -m pip install wrun-py
To build and install from sources, Go is required.
go install github.com/scop/wrun@latest
URL matching
URLs are matched against the Go toolchain wrun was built with using
the OS/architecture= prefix given along with the URLs. Valid values
for these come from Go, the list is available by running
go tool dist list, or from
Go sources.
OS and architecture may contain globs. The special case where the
OS/architecture= prefix is left out is treated as if */*= was
given.
Order of specifying the URLs is significant; the first matching one is chosen.
Download digests
To verify downloads against known good digests, place a digest in the URL
fragment.
The fragment format to use is digestAlgo-hexDigest.
For example:
#sha256-2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9842
Usage with pre-commit
See .pre-commit-config.yaml examples in
.pre-commit-hooks.yaml.
Usage in CI
Cache resides by default in the wrun subdirectory of
the user's cache directory.
$WRUN_CACHE_HOME overrides it.
pre-commit.ci is not supported, because it disallows network access at runtime.
Generating command line arguments
The generate subcommand can be used to generate wrun command line arguments for various tools.
It supports tools shipped in GitHub releases and PyPI executable wrapper wheels that meet its expectations about asset filenames regarding their OS and architecture.
Some additional tool specific generators are available as well for tools that are not served by the generic GitHub and PyPI generators.
See wrun generate --help for more information.
License
SPDX-License-Identifier: Apache-2.0
Release files for wrun-py 0.4.0.post1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wrun_py-0.4.0.post1.tar.gz | 13.6 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| wrun_py-0.4.0.post1-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| wrun_py-0.4.0.post1-py3-none-win32.whl | Python 3 | none | Windows x86-32 | Details |
| wrun_py-0.4.0.post1-py3-none-musllinux_1_2_x86_64.whl | Python 3 | none | Linux musl 1.2+ x86-64 | Details |
| wrun_py-0.4.0.post1-py3-none-musllinux_1_2_i686.whl | Python 3 | none | Linux musl 1.2+ x86-32 | Details |
| wrun_py-0.4.0.post1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.5+ x86-64, Linux glibc 2.17+ x86-64 | Details |
| wrun_py-0.4.0.post1-py3-none-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl | Python 3 | none | Linux glibc 2.17+ x86-32, Linux glibc 2.5+ x86-32 | Details |
| wrun_py-0.4.0.post1-py3-none-macosx_11_0_x86_64.whl | Python 3 | none | macOS 11.0+ x86-64 | Details |
| wrun_py-0.4.0.post1-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
Total release size: 35.5 MB
Release files / wrun_py-0.4.0.post1.tar.gz
| Download URL | wrun_py-0.4.0.post1.tar.gz |
|---|---|
| Size | 13.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8e398f08f033b861e9a018d0072bc6992076d0ddb203fadaaa1136acbe451ce5
|
|
BLAKE2b-256 checksum How to use checksums |
91198e881835d2503f4438b45527bf9d4043cd0b656a7a484a27c67b7ab0561e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2024.
Transparency logRelease files / wrun_py-0.4.0.post1-py3-none-win_amd64.whl
| Download URL | wrun_py-0.4.0.post1-py3-none-win_amd64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6b4b3942a26ef8104c23877fc8f9a010f1535d8287cc508edf71d27a116c1899
|
|
BLAKE2b-256 checksum How to use checksums |
6370321b2ec4f4a76f75dbcba1752bbb6df89f1d405127d2b355ac170a102253
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2024.
Transparency logRelease files / wrun_py-0.4.0.post1-py3-none-win32.whl
| Download URL | wrun_py-0.4.0.post1-py3-none-win32.whl |
|---|---|
| Size | 4.6 MB |
| Tags | Python 3 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
822795a62f2367582e4b10610e95086055880a3df96e9f0be5d12e93d0377916
|
|
BLAKE2b-256 checksum How to use checksums |
b738bee3492db50da96991a082ab588a7f29d8e3398f0002e9946a003bb03fed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2024.
Transparency logRelease files / wrun_py-0.4.0.post1-py3-none-musllinux_1_2_x86_64.whl
| Download URL | wrun_py-0.4.0.post1-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 4.5 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
7befeccc1ed17ce81ea846087df1e0b0e83916d364fbee0502a1bd892e27552e
|
|
BLAKE2b-256 checksum How to use checksums |
92e8361d36dc81fdc481e4c1696dd1e2fdab88404786638aa8009e1bfde913da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2024.
Transparency logRelease files / wrun_py-0.4.0.post1-py3-none-musllinux_1_2_i686.whl
| Download URL | wrun_py-0.4.0.post1-py3-none-musllinux_1_2_i686.whl |
|---|---|
| Size | 4.3 MB |
| Tags | Linux musl 1.2+ x86-32 Python 3 |
|
SHA-256 checksum How to use checksums |
044ceee0453f7c9bab5fb173ead0a8bce20a1fca3f3b92b078c10301b52b2201
|
|
BLAKE2b-256 checksum How to use checksums |
27d3b18ac89623719e75dc97bb7f6d4852432ecdae174aca3e281df1953fce1f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2024.
Transparency logRelease files / wrun_py-0.4.0.post1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | wrun_py-0.4.0.post1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.5 MB |
| Tags | Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
923975595069f3894b1eef04cb841d38d49041819cb4efa97ed610d394b61453
|
|
BLAKE2b-256 checksum How to use checksums |
abca18fdeb1c09994cb80dd8f48fd43e8af1fc1f81bc5dd76e42e17f155e7f78
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2024.
Transparency logRelease files / wrun_py-0.4.0.post1-py3-none-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | wrun_py-0.4.0.post1-py3-none-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 4.3 MB |
| Tags | Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 Python 3 |
|
SHA-256 checksum How to use checksums |
16a68536dc1375a54124065b5855c7f99292595f1eb8ecdba5e46f6aba1243c2
|
|
BLAKE2b-256 checksum How to use checksums |
0c4b24af16c8f8be29337f2cf3599aeea3d3f19f4244800a1a5ea6134426205c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2024.
Transparency logRelease files / wrun_py-0.4.0.post1-py3-none-macosx_11_0_x86_64.whl
| Download URL | wrun_py-0.4.0.post1-py3-none-macosx_11_0_x86_64.whl |
|---|---|
| Size | 4.5 MB |
| Tags | Python 3 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
e6dc8643cd972693ead73db2327943190f073c9d9646514197e5ff52dbf929ca
|
|
BLAKE2b-256 checksum How to use checksums |
fd950fd73d8c4a3f44b5fb3d75988a38ec2ef5d4e43ec2e5833d812d28992bdd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2024.
Transparency logRelease files / wrun_py-0.4.0.post1-py3-none-macosx_11_0_arm64.whl
| Download URL | wrun_py-0.4.0.post1-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
710e4bec65dacfd1f7ff178a916e6e7a4f3af6223bc0cbd4ea1cc426308e28dc
|
|
BLAKE2b-256 checksum How to use checksums |
a9864e53cacde5cd978af72bd1f665d36b4bd33f5b57dff9833240e799728645
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2024.
Transparency log