Skip to main content

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)

Source distribution for wrun-py 0.4.0.post1
File Size Uploaded
wrun_py-0.4.0.post1.tar.gz 13.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for wrun-py 0.4.0.post1
File
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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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

Release history Release notifications | RSS feed

This release

0.4.0.post1 This release

9 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page