Skip to main content

Web executable launcher

Project description

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_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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wrun_py-0.3.1.post1.tar.gz (13.6 kB view details)

Uploaded Source

Built Distributions

wrun_py-0.3.1.post1-py3-none-win_amd64.whl (4.6 MB view details)

Uploaded Python 3 Windows x86-64

wrun_py-0.3.1.post1-py3-none-win32.whl (4.6 MB view details)

Uploaded Python 3 Windows x86

wrun_py-0.3.1.post1-py3-none-musllinux_1_2_x86_64.whl (4.5 MB view details)

Uploaded Python 3 musllinux: musl 1.2+ x86-64

wrun_py-0.3.1.post1-py3-none-musllinux_1_2_i686.whl (4.3 MB view details)

Uploaded Python 3 musllinux: musl 1.2+ i686

wrun_py-0.3.1.post1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

wrun_py-0.3.1.post1-py3-none-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.3 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

wrun_py-0.3.1.post1-py3-none-macosx_11_0_x86_64.whl (4.5 MB view details)

Uploaded Python 3 macOS 11.0+ x86-64

wrun_py-0.3.1.post1-py3-none-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

File details

Details for the file wrun_py-0.3.1.post1.tar.gz.

File metadata

  • Download URL: wrun_py-0.3.1.post1.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for wrun_py-0.3.1.post1.tar.gz
Algorithm Hash digest
SHA256 a610f4557ca8fbe2fb3b0eed092c429638d5407e9a58d9634d99eed5e816c27a
MD5 df94069d81222ee2b2d92d949f2c8fba
BLAKE2b-256 d6479b5d54b4340420e4439d05012cfb11713b82d107d699b344b4eab4822b3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wrun_py-0.3.1.post1.tar.gz:

Publisher: release-pypi.yaml on scop/wrun

Attestations:

File details

Details for the file wrun_py-0.3.1.post1-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for wrun_py-0.3.1.post1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f39129774fd6d225f46d0a494357d5457be2383e636d22316059af4ef64f66f0
MD5 efc369a787ca4a8d635990eeda8e828b
BLAKE2b-256 74423a1678974c82818a4735ac0c4b6d33e11b4c0544d2e6549e3060fbd0b77b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wrun_py-0.3.1.post1-py3-none-win_amd64.whl:

Publisher: release-pypi.yaml on scop/wrun

Attestations:

File details

Details for the file wrun_py-0.3.1.post1-py3-none-win32.whl.

File metadata

  • Download URL: wrun_py-0.3.1.post1-py3-none-win32.whl
  • Upload date:
  • Size: 4.6 MB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for wrun_py-0.3.1.post1-py3-none-win32.whl
Algorithm Hash digest
SHA256 26640526389dcf4a94d0ec395f7570a052b287bd1f887d02fd022ac15236a6c9
MD5 8ee3fa83623340ba359c57b98ac2c564
BLAKE2b-256 0ce8617f72b3334ba305c1d07dd535a68fa04f9c8a79ad362f7b126c7bd57f22

See more details on using hashes here.

Provenance

The following attestation bundles were made for wrun_py-0.3.1.post1-py3-none-win32.whl:

Publisher: release-pypi.yaml on scop/wrun

Attestations:

File details

Details for the file wrun_py-0.3.1.post1-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for wrun_py-0.3.1.post1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f39e1c6e61a681cacbc1a57cb149c4034cb28a8710191ce1adfa40e50677cf6e
MD5 a33bce0f99db742359b54350bac8d0ee
BLAKE2b-256 f1bb70997d272fb3a3132f78dec1ba696fa04dd1ef461104503db3c471b7e7e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for wrun_py-0.3.1.post1-py3-none-musllinux_1_2_x86_64.whl:

Publisher: release-pypi.yaml on scop/wrun

Attestations:

File details

Details for the file wrun_py-0.3.1.post1-py3-none-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for wrun_py-0.3.1.post1-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d7ca6e0e72c5dd92315713592418dbe78053d49ed73a99ce2df40d4a75189135
MD5 2889ab3d21bdcbd7ba4d714f2417d940
BLAKE2b-256 bceac36069497c97957181a45a526affb36540bf8fb2762cd2530e1a8740c562

See more details on using hashes here.

Provenance

The following attestation bundles were made for wrun_py-0.3.1.post1-py3-none-musllinux_1_2_i686.whl:

Publisher: release-pypi.yaml on scop/wrun

Attestations:

File details

Details for the file wrun_py-0.3.1.post1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wrun_py-0.3.1.post1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9ff252211f6b95855790ce7e93ce265bab89c6ecfebc55faf0474e49b383a9ae
MD5 f370b1b54ad47d0cc857adfa34d2c013
BLAKE2b-256 14a73b7cf4961ded720b44bf05b345193c9196272c009f62c2a90c0c35494d4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wrun_py-0.3.1.post1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-pypi.yaml on scop/wrun

Attestations:

File details

Details for the file wrun_py-0.3.1.post1-py3-none-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for wrun_py-0.3.1.post1-py3-none-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cac8d66d8fb2bafa9f47647988908d75f161049f02dd8cd84776326d02ecdfc9
MD5 0a985ec56219f7cbd97a9ef40e532caf
BLAKE2b-256 5927a2ca1fca7e0d66a8c87d3e80f8ee0eff910fd8e9d8f15226d32ab5e35afe

See more details on using hashes here.

Provenance

The following attestation bundles were made for wrun_py-0.3.1.post1-py3-none-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: release-pypi.yaml on scop/wrun

Attestations:

File details

Details for the file wrun_py-0.3.1.post1-py3-none-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for wrun_py-0.3.1.post1-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 ee1c0b4c0d5c0ef37076bbb9958d61c2d44d59f7185f84d3a1b5ee3f8c228c70
MD5 e6f972c7fb4bfff03c6c39bbf280c5ba
BLAKE2b-256 cb03f6d4428f7bf91ca4c6fedb3a31da76421b6c7086656d4e92c237f7c557fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for wrun_py-0.3.1.post1-py3-none-macosx_11_0_x86_64.whl:

Publisher: release-pypi.yaml on scop/wrun

Attestations:

File details

Details for the file wrun_py-0.3.1.post1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wrun_py-0.3.1.post1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7d42a8e1ea466919a77d6b8b945e244b290b5b171ca05352e804e94af4f48721
MD5 5dea030ab598b46c702be3b4eecda428
BLAKE2b-256 647a224da329cd0d9c9f3c9f649927da1654a95ef25774574a23f62e37851f94

See more details on using hashes here.

Provenance

The following attestation bundles were made for wrun_py-0.3.1.post1-py3-none-macosx_11_0_arm64.whl:

Publisher: release-pypi.yaml on scop/wrun

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page