mirror of
https://github.com/taiki-e/install-action.git
synced 2026-05-03 03:30:36 +00:00
Compare commits
49 Commits
cargo-fuzz
...
v2.28.16
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a7eed8c9d8 | ||
|
|
3d2f04f8b4 | ||
|
|
a4be0bd799 | ||
|
|
96ad7857af | ||
|
|
3d5321a5e3 | ||
|
|
7a9733edc1 | ||
|
|
d9dbaa35c1 | ||
|
|
8ef8d5c3d7 | ||
|
|
34c5068afd | ||
|
|
862cbe3dad | ||
|
|
4abee32ddd | ||
|
|
f9ee7f5ee5 | ||
|
|
d5ead4fdbf | ||
|
|
7a2fb89331 | ||
|
|
9f5856e181 | ||
|
|
93d33733d0 | ||
|
|
02cfd03d1c | ||
|
|
ef34468ec4 | ||
|
|
8c071244cd | ||
|
|
0c33bd30b5 | ||
|
|
0078623260 | ||
|
|
bdcea8ae05 | ||
|
|
607d37ff14 | ||
|
|
df5e716edf | ||
|
|
9081a21d93 | ||
|
|
4772f78be9 | ||
|
|
64e43f34b0 | ||
|
|
7959d3152f | ||
|
|
6cd93b2dae | ||
|
|
8adeb5bc7d | ||
|
|
715c07ff04 | ||
|
|
7d63af0a88 | ||
|
|
c3145b9a6f | ||
|
|
285438a9d9 | ||
|
|
4978b3c854 | ||
|
|
6224cba8b6 | ||
|
|
203bfd72b0 | ||
|
|
b00c5f12b5 | ||
|
|
9d24ab5687 | ||
|
|
0d70155cef | ||
|
|
ab6c6ac273 | ||
|
|
dabb9c1ee5 | ||
|
|
67d50f4c7a | ||
|
|
ccb87e050c | ||
|
|
598eb1aa13 | ||
|
|
fcdd50a1bc | ||
|
|
28b5a55da2 | ||
|
|
709aeb3493 | ||
|
|
70fd2d4303 |
2
.github/.cspell/project-dictionary.txt
vendored
2
.github/.cspell/project-dictionary.txt
vendored
@@ -1,4 +1,5 @@
|
||||
almalinux
|
||||
bindgen
|
||||
binstall
|
||||
coreutils
|
||||
distro
|
||||
@@ -18,7 +19,6 @@ pwsh
|
||||
quickinstall
|
||||
rdme
|
||||
sccache
|
||||
shellcheck
|
||||
shfmt
|
||||
syft
|
||||
udeps
|
||||
|
||||
8
.github/workflows/ci.yml
vendored
8
.github/workflows/ci.yml
vendored
@@ -55,7 +55,7 @@ jobs:
|
||||
runs-on: ${{ matrix.os }}
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
- uses: taiki-e/github-actions/checkout@main
|
||||
- uses: taiki-e/checkout-action@v1
|
||||
# cross attempts to install rust-src when Cargo.toml is available even if `cross --version`
|
||||
- run: rm Cargo.toml
|
||||
- name: Generate tool list
|
||||
@@ -130,7 +130,7 @@ jobs:
|
||||
run: apk --no-cache add bash cargo
|
||||
shell: sh
|
||||
if: startsWith(matrix.container, 'alpine')
|
||||
- uses: taiki-e/github-actions/checkout@main
|
||||
- uses: taiki-e/checkout-action@v1
|
||||
# cross attempts to install rust-src when Cargo.toml is available even if `cross --version`
|
||||
- run: rm Cargo.toml
|
||||
- name: Generate tool list
|
||||
@@ -145,7 +145,7 @@ jobs:
|
||||
timeout-minutes: 60
|
||||
container: ubuntu:22.04
|
||||
steps:
|
||||
- uses: taiki-e/github-actions/checkout@main
|
||||
- uses: taiki-e/checkout-action@v1
|
||||
- name: Generate tool list
|
||||
id: tool-list
|
||||
run: tools/ci/tool-list.sh >>"${GITHUB_OUTPUT}"
|
||||
@@ -160,7 +160,7 @@ jobs:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
steps:
|
||||
- uses: taiki-e/github-actions/checkout@main
|
||||
- uses: taiki-e/checkout-action@v1
|
||||
- name: Install Rust
|
||||
run: rustup toolchain add nightly --no-self-update && rustup default nightly
|
||||
- run: tools/manifest.sh
|
||||
|
||||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- uses: taiki-e/github-actions/checkout@main
|
||||
- uses: taiki-e/checkout-action@v1
|
||||
- uses: taiki-e/create-gh-release-action@v1
|
||||
with:
|
||||
changelog: CHANGELOG.md
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,5 +1,6 @@
|
||||
target
|
||||
Cargo.lock
|
||||
.venv
|
||||
tmp
|
||||
|
||||
# For platform and editor specific settings, it is recommended to add to
|
||||
|
||||
95
CHANGELOG.md
95
CHANGELOG.md
@@ -10,6 +10,82 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [2.28.16] - 2024-03-17
|
||||
|
||||
- Update `cargo-deny@latest` to 0.14.17.
|
||||
|
||||
## [2.28.15] - 2024-03-16
|
||||
|
||||
- Update `cargo-llvm-cov@latest` to 0.6.8.
|
||||
|
||||
## [2.28.14] - 2024-03-13
|
||||
|
||||
- Update `protoc@latest` to 3.26.0.
|
||||
|
||||
## [2.28.13] - 2024-03-13
|
||||
|
||||
- Update `wasmtime@latest` to 18.0.3.
|
||||
|
||||
## [2.28.12] - 2024-03-12
|
||||
|
||||
- Update `biome@latest` to 1.6.1.
|
||||
|
||||
## [2.28.11] - 2024-03-11
|
||||
|
||||
- Update `just@latest` to 1.25.2.
|
||||
|
||||
## [2.28.10] - 2024-03-10
|
||||
|
||||
- Update `cargo-udeps@latest` to 0.1.47.
|
||||
|
||||
## [2.28.9] - 2024-03-10
|
||||
|
||||
- Update `cargo-llvm-cov@latest` to 0.6.7.
|
||||
|
||||
## [2.28.8] - 2024-03-10
|
||||
|
||||
- Update `cargo-no-dev-deps@latest` to 0.2.12.
|
||||
|
||||
- Update `cargo-minimal-versions@latest` to 0.1.26.
|
||||
|
||||
- Update `cargo-hack@latest` to 0.6.22.
|
||||
|
||||
- Update `cargo-binstall@latest` to 1.6.4.
|
||||
|
||||
## [2.28.7] - 2024-03-09
|
||||
|
||||
- Update `just@latest` to 1.25.0.
|
||||
|
||||
## [2.28.6] - 2024-03-08
|
||||
|
||||
- Update `biome@latest` to 1.6.0.
|
||||
|
||||
## [2.28.5] - 2024-03-08
|
||||
|
||||
- Update `shellcheck@latest` to 0.10.0.
|
||||
|
||||
## [2.28.4] - 2024-03-06
|
||||
|
||||
- Update `syft@latest` to 1.0.1.
|
||||
|
||||
## [2.28.3] - 2024-03-06
|
||||
|
||||
- Update `cargo-hack@latest` to 0.6.21.
|
||||
|
||||
## [2.28.2] - 2024-03-06
|
||||
|
||||
- Update `cargo-deny@latest` to 0.14.16.
|
||||
|
||||
- Update `parse-changelog@latest` to 0.6.5.
|
||||
|
||||
## [2.28.1] - 2024-03-04
|
||||
|
||||
- Update `wasm-bindgen@latest` to 0.2.92.
|
||||
|
||||
## [2.28.0] - 2024-03-02
|
||||
|
||||
- Support `wasm-bindgen`. ([#383](https://github.com/taiki-e/install-action/pull/383), thanks @Ekleog)
|
||||
|
||||
- Support `sccache`. ([#390](https://github.com/taiki-e/install-action/pull/390))
|
||||
|
||||
## [2.27.15] - 2024-03-02
|
||||
@@ -1833,7 +1909,24 @@ Note: This release is considered a breaking change because installing on version
|
||||
|
||||
Initial release
|
||||
|
||||
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.27.15...HEAD
|
||||
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.28.16...HEAD
|
||||
[2.28.16]: https://github.com/taiki-e/install-action/compare/v2.28.15...v2.28.16
|
||||
[2.28.15]: https://github.com/taiki-e/install-action/compare/v2.28.14...v2.28.15
|
||||
[2.28.14]: https://github.com/taiki-e/install-action/compare/v2.28.13...v2.28.14
|
||||
[2.28.13]: https://github.com/taiki-e/install-action/compare/v2.28.12...v2.28.13
|
||||
[2.28.12]: https://github.com/taiki-e/install-action/compare/v2.28.11...v2.28.12
|
||||
[2.28.11]: https://github.com/taiki-e/install-action/compare/v2.28.10...v2.28.11
|
||||
[2.28.10]: https://github.com/taiki-e/install-action/compare/v2.28.9...v2.28.10
|
||||
[2.28.9]: https://github.com/taiki-e/install-action/compare/v2.28.8...v2.28.9
|
||||
[2.28.8]: https://github.com/taiki-e/install-action/compare/v2.28.7...v2.28.8
|
||||
[2.28.7]: https://github.com/taiki-e/install-action/compare/v2.28.6...v2.28.7
|
||||
[2.28.6]: https://github.com/taiki-e/install-action/compare/v2.28.5...v2.28.6
|
||||
[2.28.5]: https://github.com/taiki-e/install-action/compare/v2.28.4...v2.28.5
|
||||
[2.28.4]: https://github.com/taiki-e/install-action/compare/v2.28.3...v2.28.4
|
||||
[2.28.3]: https://github.com/taiki-e/install-action/compare/v2.28.2...v2.28.3
|
||||
[2.28.2]: https://github.com/taiki-e/install-action/compare/v2.28.1...v2.28.2
|
||||
[2.28.1]: https://github.com/taiki-e/install-action/compare/v2.28.0...v2.28.1
|
||||
[2.28.0]: https://github.com/taiki-e/install-action/compare/v2.27.15...v2.28.0
|
||||
[2.27.15]: https://github.com/taiki-e/install-action/compare/v2.27.14...v2.27.15
|
||||
[2.27.14]: https://github.com/taiki-e/install-action/compare/v2.27.13...v2.27.14
|
||||
[2.27.13]: https://github.com/taiki-e/install-action/compare/v2.27.12...v2.27.13
|
||||
|
||||
@@ -114,6 +114,7 @@ https://spdx.org/licenses
|
||||
| [**shfmt**](https://github.com/mvdan/sh) | `/usr/local/bin` | [GitHub Releases](https://github.com/mvdan/sh/releases) | Linux, macOS, Windows | [BSD-3-Clause](https://github.com/mvdan/sh/blob/HEAD/LICENSE) |
|
||||
| [**syft**](https://github.com/anchore/syft) | `/usr/local/bin` | [Github Releases](https://github.com/anchore/syft/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/anchore/syft/blob/HEAD/LICENSE) |
|
||||
| [**valgrind**](https://valgrind.org) | `/snap/bin` | [snap](https://snapcraft.io/install/valgrind/ubuntu) | Linux | [GPL-2.0-or-later](https://valgrind.org/docs/manual/license.gpl.html) |
|
||||
| [**wasm-bindgen**](https://github.com/rustwasm/wasm-bindgen) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rustwasm/wasm-bindgen/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/rustwasm/wasm-bindgen/blob/HEAD/LICENSE-APACHE) OR [MIT](https://github.com/rustwasm/wasm-bindgen/blob/HEAD/LICENSE-MIT) |
|
||||
| [**wasm-pack**](https://github.com/rustwasm/wasm-pack) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rustwasm/wasm-pack/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/rustwasm/wasm-pack/blob/HEAD/LICENSE-APACHE) OR [MIT](https://github.com/rustwasm/wasm-pack/blob/HEAD/LICENSE-MIT) |
|
||||
| [**wasmtime**](https://github.com/bytecodealliance/wasmtime) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/bytecodealliance/wasmtime/releases) | Linux, macOS, Windows | [Apache-2.0 WITH LLVM-exception](https://github.com/bytecodealliance/wasmtime/blob/HEAD/LICENSE) |
|
||||
| [**xbuild**](https://github.com/rust-mobile/xbuild) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rust-mobile/xbuild/releases) | Linux, macOS, Windows | Apache-2.0 OR MIT |
|
||||
|
||||
157
main.sh
157
main.sh
@@ -54,18 +54,26 @@ download_and_checksum() {
|
||||
}
|
||||
download_and_extract() {
|
||||
local url="$1"
|
||||
local checksum="$2"
|
||||
local bin_dir="$3"
|
||||
local bin_in_archive="$4" # path to bin in archive
|
||||
shift
|
||||
local checksum="$1"
|
||||
shift
|
||||
local bin_dir="$1"
|
||||
shift
|
||||
local bin_in_archive=("$@") # path to bin in archive
|
||||
if [[ "${bin_dir}" == "${install_action_dir}/bin" ]]; then
|
||||
init_install_action_bin_dir
|
||||
fi
|
||||
|
||||
local installed_bin
|
||||
# xbuild's binary name is "x", as opposed to the usual crate name
|
||||
installed_bin=()
|
||||
local tmp
|
||||
case "${tool}" in
|
||||
xbuild) installed_bin="${bin_dir}/x" ;;
|
||||
*) installed_bin="${bin_dir}/$(basename "${bin_in_archive}")" ;;
|
||||
# xbuild's binary name is "x", as opposed to the usual crate name
|
||||
xbuild) installed_bin=("${bin_dir}/x") ;;
|
||||
*)
|
||||
for tmp in "${bin_in_archive[@]}"; do
|
||||
installed_bin+=("${bin_dir}/$(basename "${tmp}")")
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
local tar_args=()
|
||||
@@ -119,19 +127,23 @@ download_and_extract() {
|
||||
download_and_checksum "${url}" "${checksum}"
|
||||
if [[ ${#tar_args[@]} -gt 0 ]]; then
|
||||
tar_args+=("tmp")
|
||||
local components
|
||||
components=$(tr <<<"${bin_in_archive}" -cd '/' | wc -c)
|
||||
if [[ "${components}" != "0" ]]; then
|
||||
tar_args+=(--strip-components "${components}")
|
||||
fi
|
||||
tar "${tar_args[@]}" -C "${bin_dir}" "${bin_in_archive}"
|
||||
tar "${tar_args[@]}"
|
||||
for tmp in "${bin_in_archive[@]}"; do
|
||||
mv "${tmp}" "${bin_dir}/"
|
||||
done
|
||||
else
|
||||
case "${url}" in
|
||||
*.zip)
|
||||
unzip -q tmp "${bin_in_archive#\./}"
|
||||
mv "${bin_in_archive}" "${bin_dir}/"
|
||||
for tmp in "${bin_in_archive[@]}"; do
|
||||
mv "${tmp}" "${bin_dir}/"
|
||||
done
|
||||
;;
|
||||
*)
|
||||
for tmp in "${installed_bin[@]}"; do
|
||||
mv tmp "${tmp}"
|
||||
done
|
||||
;;
|
||||
*) mv tmp "${installed_bin}" ;;
|
||||
esac
|
||||
fi
|
||||
)
|
||||
@@ -139,9 +151,11 @@ download_and_extract() {
|
||||
|
||||
case "${host_os}" in
|
||||
linux | macos)
|
||||
if [[ ! -x "${installed_bin}" ]]; then
|
||||
chmod +x "${installed_bin}"
|
||||
fi
|
||||
for tmp in "${installed_bin[@]}"; do
|
||||
if [[ ! -x "${tmp}" ]]; then
|
||||
chmod +x "${tmp}"
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
}
|
||||
@@ -198,15 +212,31 @@ read_download_info() {
|
||||
fi
|
||||
checksum=$(call_jq <<<"${download_info}" -r '.checksum')
|
||||
url=$(call_jq <<<"${download_info}" -r '.url')
|
||||
local tmp
|
||||
bin_in_archive=()
|
||||
if [[ "${url}" == "null" ]]; then
|
||||
local template
|
||||
template=$(call_jq -r ".template.${host_platform}" "${manifest_dir}/${tool}.json")
|
||||
url=$(call_jq <<<"${template}" -r '.url')
|
||||
url="${url//\$\{version\}/${exact_version}}"
|
||||
bin_in_archive=$(call_jq <<<"${template}" -r '.bin')
|
||||
bin_in_archive="${bin_in_archive//\$\{version\}/${exact_version}}"
|
||||
tmp=$(call_jq <<<"${template}" -r '.bin' | sed -E "s/\\$\\{version\\}/${exact_version}/g")
|
||||
if [[ "${tmp}" == *"["* ]]; then
|
||||
# shellcheck disable=SC2207
|
||||
bin_in_archive=($(call_jq <<<"${template}" -r '.bin[]' | sed -E "s/\\$\\{version\\}/${exact_version}/g"))
|
||||
fi
|
||||
else
|
||||
bin_in_archive=$(call_jq <<<"${download_info}" -r '.bin')
|
||||
tmp=$(call_jq <<<"${download_info}" -r '.bin')
|
||||
if [[ "${tmp}" == *"["* ]]; then
|
||||
# shellcheck disable=SC2207
|
||||
bin_in_archive=($(call_jq <<<"${download_info}" -r '.bin[]'))
|
||||
fi
|
||||
fi
|
||||
if [[ ${#bin_in_archive[@]} -eq 0 ]]; then
|
||||
if [[ "${tmp}" == "null" ]]; then
|
||||
bin_in_archive=("${tool}${exe}")
|
||||
else
|
||||
bin_in_archive=("${tmp}")
|
||||
fi
|
||||
fi
|
||||
if [[ "${rust_crate}" == "null" ]]; then
|
||||
if [[ "${host_os}" == "windows" ]] || [[ ! -e /usr/local/bin ]]; then
|
||||
@@ -217,9 +247,6 @@ read_download_info() {
|
||||
else
|
||||
bin_dir="${cargo_bin}"
|
||||
fi
|
||||
if [[ "${bin_in_archive}" == "null" ]]; then
|
||||
bin_in_archive="${tool}${exe}"
|
||||
fi
|
||||
}
|
||||
download_from_manifest() {
|
||||
read_manifest "$@"
|
||||
@@ -227,7 +254,7 @@ download_from_manifest() {
|
||||
}
|
||||
download_from_download_info() {
|
||||
read_download_info "$@"
|
||||
download_and_extract "${url}" "${checksum}" "${bin_dir}" "${bin_in_archive}"
|
||||
download_and_extract "${url}" "${checksum}" "${bin_dir}" "${bin_in_archive[@]}"
|
||||
}
|
||||
install_cargo_binstall() {
|
||||
local binstall_version
|
||||
@@ -540,6 +567,7 @@ for tool in "${tools[@]}"; do
|
||||
else
|
||||
version="latest"
|
||||
fi
|
||||
installed_bin=()
|
||||
case "${tool}" in
|
||||
protoc)
|
||||
info "installing ${tool}@${version}"
|
||||
@@ -576,6 +604,7 @@ for tool in "${tools[@]}"; do
|
||||
fi
|
||||
)
|
||||
rm -rf "${tmp_dir}"
|
||||
installed_bin=("${tool}${exe}")
|
||||
;;
|
||||
valgrind)
|
||||
info "installing ${tool}@${version}"
|
||||
@@ -593,6 +622,7 @@ for tool in "${tools[@]}"; do
|
||||
# Use snap to install the latest Valgrind
|
||||
# https://snapcraft.io/install/valgrind/ubuntu
|
||||
snap_install valgrind --classic
|
||||
installed_bin=("${tool}${exe}")
|
||||
;;
|
||||
cargo-binstall)
|
||||
case "${version}" in
|
||||
@@ -651,41 +681,50 @@ for tool in "${tools[@]}"; do
|
||||
;;
|
||||
esac
|
||||
|
||||
case "${tool}" in
|
||||
xbuild) tool_bin="x" ;;
|
||||
*) tool_bin="${tool}" ;;
|
||||
esac
|
||||
installed_at=$(type -P "${tool_bin}${exe}" || echo "")
|
||||
if [[ -n "${installed_at}" ]]; then
|
||||
tool_bin="${tool_bin}${exe}"
|
||||
else
|
||||
tool_bin_stems=()
|
||||
for tool_bin in "${installed_bin[@]}"; do
|
||||
tool_bin=$(basename "${tool_bin}")
|
||||
tool_bin_stem="${tool_bin%.exe}"
|
||||
installed_at=$(type -P "${tool_bin}" || echo "")
|
||||
fi
|
||||
if [[ -n "${installed_at}" ]]; then
|
||||
info "${tool} installed at ${installed_at}"
|
||||
else
|
||||
warn "${tool} should be installed at ${bin_dir:+"${bin_dir}/"}${tool_bin}${exe}; but ${tool_bin}${exe} not found in path"
|
||||
fi
|
||||
# cargo-udeps 0.1.30 and wasm-pack 0.12.0 do not support --version option.
|
||||
case "${tool}" in
|
||||
biome) rx "${tool_bin}" --version || true ;; # biome up to 1.2.2 exits with 1 on --version and --help
|
||||
cargo-careful | cargo-machete) ;; # cargo-careful 0.3.4 and cargo-machete 0.5.0 do not support neither --version nor --help option.
|
||||
cargo-*)
|
||||
case "${tool}" in
|
||||
cargo-valgrind) rx "${tool_bin}" "${tool#cargo-}" --help ;; # cargo-valgrind 2.1.0's --version option just calls cargo's --version option
|
||||
*)
|
||||
if ! rx "${tool_bin}" "${tool#cargo-}" --version; then
|
||||
rx "${tool_bin}" "${tool#cargo-}" --help
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
if ! rx "${tool_bin}" --version; then
|
||||
rx "${tool_bin}" --help
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if [[ -z "${installed_at}" ]]; then
|
||||
tool_bin="${tool_bin_stem}"
|
||||
installed_at=$(type -P "${tool_bin}" || echo "")
|
||||
fi
|
||||
if [[ -n "${installed_at}" ]]; then
|
||||
info "${tool_bin_stem} installed at ${installed_at}"
|
||||
else
|
||||
warn "${tool_bin_stem} should be installed at ${bin_dir:+"${bin_dir}/"}${tool_bin}${exe}; but ${tool_bin}${exe} not found in path"
|
||||
fi
|
||||
tool_bin_stems+=("${tool_bin_stem}")
|
||||
done
|
||||
for tool_bin_stem in "${tool_bin_stems[@]}"; do
|
||||
# cargo-udeps 0.1.30 and wasm-pack 0.12.0 do not support --version flag.
|
||||
case "${tool_bin_stem}" in
|
||||
# biome up to 1.2.2 exits with 1 on both --version and --help flags.
|
||||
# cargo-machete up to 0.6.0 does not support --version flag.
|
||||
biome | cargo-machete) rx "${tool_bin_stem}" --version || true ;;
|
||||
# these packages support neither --version nor --help flag.
|
||||
cargo-careful | wasm-bindgen-test-runner) ;;
|
||||
# wasm2es6js does not support --version flag and --help flag doesn't contains version info.
|
||||
wasm2es6js) ;;
|
||||
cargo-*)
|
||||
case "${tool_bin_stem}" in
|
||||
# cargo-valgrind 2.1.0's --version flag just calls cargo's --version flag
|
||||
cargo-valgrind) rx "${tool_bin_stem}" "${tool_bin_stem#cargo-}" --help ;;
|
||||
*)
|
||||
if ! rx "${tool_bin_stem}" "${tool_bin_stem#cargo-}" --version; then
|
||||
rx "${tool_bin_stem}" "${tool_bin_stem#cargo-}" --help
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
if ! rx "${tool_bin_stem}" --version; then
|
||||
rx "${tool_bin_stem}" --help
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
echo
|
||||
done
|
||||
|
||||
|
||||
47
manifests/biome.json
generated
47
manifests/biome.json
generated
@@ -35,10 +35,53 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "1.5.3"
|
||||
"version": "1.6.1"
|
||||
},
|
||||
"1": {
|
||||
"version": "1.5.3"
|
||||
"version": "1.6.1"
|
||||
},
|
||||
"1.6": {
|
||||
"version": "1.6.1"
|
||||
},
|
||||
"1.6.1": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "698249d598ba196ab32c2a383b4b00e429cdbb5a24c2b11ea6aa80c4ca0dd15c"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "49f776fca81c8b3ac6b8051429bb240c38a41949fbf8d55713df6b3ff4797a91"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "f3dcf3669f630b6017ce6e23c1d8a8424295b5c504922c6dfab029d9ecacea3c"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "dcf867dfa1541670d0eb2bde117f1f01f5dcfe66ea30cd97adf1dd96a1a73f70"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "6373cbc2c9dce3aa1fd3af2b2293a792e13e374b0c503d43a80e9fc35f100502"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "97e4b7d0c1256e51028ea496c665fca8e53237ff44434ccd27a477d38167ad43"
|
||||
}
|
||||
},
|
||||
"1.6.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "4a76d09b1c06c3b7c486e99c899076d4f60f8b34d0bb9b41a61abee16345a99c"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "4cf6468c39e3eb45a5bfc4d65365d1b748470d0f97235471263ef7dd66b2bae5"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "43a2df63d8bc3c1afe3560d9a2c4629d6961d31b99d251446ce359e1ce7844dd"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "7897c55191a8c500107764102c0cc5e29f5817829cd4eda6d9e1236aec95cdf7"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "396602d624fe1a68a6ea59a4d75bd43d2643f9283c543e240a86fbd3d21192b6"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "04e5fb6d337f468ab50fae1d2586dd210a8d6adb2cf4879011119b1dcb8446a1"
|
||||
}
|
||||
},
|
||||
"1.5": {
|
||||
"version": "1.5.3"
|
||||
|
||||
16
manifests/cargo-binstall.json
generated
16
manifests/cargo-binstall.json
generated
@@ -21,26 +21,26 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "1.6.3"
|
||||
"version": "1.6.4"
|
||||
},
|
||||
"1.6.3": {
|
||||
"1.6.4": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "ff8f86eaf79812acc259d249e0c62f4b3103d28a16ec02e7f64f8e3bc9c3d2e9"
|
||||
"checksum": "b07160c21cdfcc24c3afe94b3cb12bf6d111cef7b218cce85a0c1dfae7e106dd"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "f8eaee08667695cb4d446c5c474ba5415c3bb07be1a213728107ad65788104f1"
|
||||
"checksum": "761839db77de482f9bbddb87d43563f8308e7dbdccf2bb3c66f3bcbe13a5dee0"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "44394103dc261b05ac928f23f8013f5c7e8355a10e849f096d792030f82c89c4"
|
||||
"checksum": "2a05851e1a854cc27c7c6a04f665d506bf2b7aa0aa62721a82af9aeeff9d20d2"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "98d1b33b2c2cf076bdc8993d1a645ade9cb36919e22516faf5830933513a03fa"
|
||||
"checksum": "70c17459e4bc0b417679e66af55199603d80fa751d819b86713f700e3e9a6602"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "89696b9b02605c0775ca02b0bab3f07843833e3e247b953a5b8f97daa043bdc1"
|
||||
"checksum": "64755bfa178ba061c90d46fdf6c977c9b78564bcb4605ff827855d6623453be9"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "cec760fdeb4523e3de1d7febc1d07bee9aa9a3a3837fd9ec0191ad7396e38ca0"
|
||||
"checksum": "1277c4ae1a772f803355e256192c2b8bc434421dbd137a9b895ca8031a31ddb3"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
32
manifests/cargo-deny.json
generated
32
manifests/cargo-deny.json
generated
@@ -19,10 +19,38 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.14.15"
|
||||
"version": "0.14.17"
|
||||
},
|
||||
"0.14": {
|
||||
"version": "0.14.15"
|
||||
"version": "0.14.17"
|
||||
},
|
||||
"0.14.17": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "d678a3d16a42795264882f90a09bf603c7403395b20254ab2dfd9c5e256d439f"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "4295788546977b45b67044ae8f7cc857a3e6674ea2b2d73afb467f2824fea288"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "f755e9915167f943ca7b4e008412e2ee32a265d2f5f1f4951815ac58da81fbda"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "e25d594a60820e52132cf9c8ae172821c97c1e889cfe0dfbde51946dad53a350"
|
||||
}
|
||||
},
|
||||
"0.14.16": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "7b09aafdc42eeae5d67e523469a69e5b5dc65edb87d87fa68b3c014c9a27d780"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "fa2efa5be935d684ba62c64950041eda7ed81af6b49608c6c8bad3c6f140eb2d"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "7d977cb7f37064bda9711adb5d6574f07634aa50b3eaf612ab134b07727e2e6d"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "285cf6fb30341652e07135fd2fdb083455211527985c8cb2f889804a4068cd3e"
|
||||
}
|
||||
},
|
||||
"0.14.15": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
56
manifests/cargo-hack.json
generated
56
manifests/cargo-hack.json
generated
@@ -2,10 +2,62 @@
|
||||
"rust_crate": "cargo-hack",
|
||||
"template": null,
|
||||
"latest": {
|
||||
"version": "0.6.20"
|
||||
"version": "0.6.22"
|
||||
},
|
||||
"0.6": {
|
||||
"version": "0.6.20"
|
||||
"version": "0.6.22"
|
||||
},
|
||||
"0.6.22": {
|
||||
"x86_64_linux_musl": {
|
||||
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.22/cargo-hack-x86_64-unknown-linux-musl.tar.gz",
|
||||
"checksum": "25d19166c2e3be108d815bfb15624b2ff82909a0b92bfbf56f5c3e2e44db4eb6"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.22/cargo-hack-x86_64-apple-darwin.tar.gz",
|
||||
"checksum": "eff3116e6c9f0ac543d3ad02960a626f1e1a82aebb0d1d5377ed1cf3c923a746"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.22/cargo-hack-x86_64-pc-windows-msvc.tar.gz",
|
||||
"checksum": "d4d6482e55ca7c08cddde24eb9539c0642392eef3c79a3abde26bee9a0308735"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.22/cargo-hack-aarch64-unknown-linux-musl.tar.gz",
|
||||
"checksum": "5e025b0a806ee48440dbc858f9239e45dc823ea178a1c8953eb6b36209f212e2"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.22/cargo-hack-aarch64-apple-darwin.tar.gz",
|
||||
"checksum": "e0a30429c822453c0557defcffc3bb33146bf211489e6848024f60023446e897"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.22/cargo-hack-aarch64-pc-windows-msvc.tar.gz",
|
||||
"checksum": "fdd599e2327e54422b7288bc5385e1e0353a60e48376107f9bc8e659b082abc2"
|
||||
}
|
||||
},
|
||||
"0.6.21": {
|
||||
"x86_64_linux_musl": {
|
||||
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.21/cargo-hack-x86_64-unknown-linux-musl.tar.gz",
|
||||
"checksum": "4d1cc13c72ac620df9265506ad8dd03f84117c8c653586be3d73590e013fe9a8"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.21/cargo-hack-x86_64-apple-darwin.tar.gz",
|
||||
"checksum": "675e3a63d6e741a53363e71b29f7babd1f685cfa14168b8914116cdb176f38e0"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.21/cargo-hack-x86_64-pc-windows-msvc.tar.gz",
|
||||
"checksum": "f57ea407c7a2a11c6e31102087b8689c44ecdd8f8eb7c76fe98002cc7efd2f84"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.21/cargo-hack-aarch64-unknown-linux-musl.tar.gz",
|
||||
"checksum": "52159eb4d6b03441d6a696dc52dd3c46ff06b4983df8524c5d908bcd53c9425d"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.21/cargo-hack-aarch64-apple-darwin.tar.gz",
|
||||
"checksum": "e37a2eaa79cb04d8868d8c23f45af296433d60b75181bed0be49650cfd7c0c6e"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.21/cargo-hack-aarch64-pc-windows-msvc.tar.gz",
|
||||
"checksum": "faa6323ebb18e54038b19c61d138793c9b1e31dd64e337cbc64cc283faa62a3c"
|
||||
}
|
||||
},
|
||||
"0.6.20": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
38
manifests/cargo-llvm-cov.json
generated
38
manifests/cargo-llvm-cov.json
generated
@@ -18,10 +18,44 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.6.6"
|
||||
"version": "0.6.8"
|
||||
},
|
||||
"0.6": {
|
||||
"version": "0.6.6"
|
||||
"version": "0.6.8"
|
||||
},
|
||||
"0.6.8": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "2d655a09eb0dec705e1ba6be73b2cf81a85d9eed27b8190db9cbc0af7a3030ca"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "076982bc15cd6ebd2d96102a489fe5e2aef981318ff6cd3076a555c77c793f8d"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "911bf8162e13c9bfe73d65f608874d300dea6f4c7a49d92ee9dc530bfee858e4"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "a68a0a2082de3118959020616d3112664882afd203379a098b35c5c676200698"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "27aae20fa89be1e4d3540248eb547b710e6836470dd1ed2bc2d4ac145c0875cb"
|
||||
}
|
||||
},
|
||||
"0.6.7": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "6204c229d533f164fd6d126fe7299f72b58e456a373ee0fed56ec45ee437297a"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "a8174bff663399a56a7a393cb2518a81fa1f14717079a7970846c869714cb96c"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "dfb37144a677f0c97087aed92fb71658b62ab8f92c38749661f3f7cdd76afe00"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "87e751a63c3b45163aabdd2b46111aaa08ba4d57b5675d307cd637cfa98031bc"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "307463a3e09eaccd8fa58d5d7005f4fd4befa8c8bae902655cb6567f5cbc6a6d"
|
||||
}
|
||||
},
|
||||
"0.6.6": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
24
manifests/cargo-minimal-versions.json
generated
24
manifests/cargo-minimal-versions.json
generated
@@ -21,10 +21,30 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.1.25"
|
||||
"version": "0.1.26"
|
||||
},
|
||||
"0.1": {
|
||||
"version": "0.1.25"
|
||||
"version": "0.1.26"
|
||||
},
|
||||
"0.1.26": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "6a8fc07cc5bc50f43045322d4e6380df07ff487b57a467f192a9b9627fd129df"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "11cff520bb3575ce1f0b7ba8e1701e4c2f294a17f85f51a51e1a58bd9b79bff3"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "3b9ebd11fe8d4947fdd58bccf4bd81810a5ff71a5095a0e84118715d721871c7"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "2f773cbb435511a07a024d2de3e8f60bd284c77a840811c1234e29f3cb0df5a8"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "0e7b05d74baf1821e53c62ab6dc524847ea3af5a2b9fa0432e3c570e4ac368dd"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "e21a4b25db1989afbafa9a9cc414fc75ff7f6aa75e783160934729c717b4f15e"
|
||||
}
|
||||
},
|
||||
"0.1.25": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
24
manifests/cargo-no-dev-deps.json
generated
24
manifests/cargo-no-dev-deps.json
generated
@@ -21,10 +21,30 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.2.11"
|
||||
"version": "0.2.12"
|
||||
},
|
||||
"0.2": {
|
||||
"version": "0.2.11"
|
||||
"version": "0.2.12"
|
||||
},
|
||||
"0.2.12": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "dc8922c69564dae3b8fb61c92c9f54d0b54fe5280950e05c9e6fed0a82ee66fb"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "ecc61dc31eb42cf8b5bbb37ad0f52e269d881712fb8a54344eef64a91a2f0b56"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "6f354aafb4d3140ca5e3cfadcdde83f4d5d380598bb1106506dbcbf3d096d089"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "8a0a2411f8d86dfbf3999d0f2533d1324ffc84a91feddcaac07154a600ee0e49"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "7e73edade320c92c729eba3264f49679c3bf8267bf57aa5b7bcf7912f645bd18"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "a0f77f2b48cef8c6370b380f5720eeefab53865ee4305a8c587d82ce6bfc8105"
|
||||
}
|
||||
},
|
||||
"0.2.11": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
24
manifests/cargo-udeps.json
generated
24
manifests/cargo-udeps.json
generated
@@ -31,10 +31,30 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.1.45"
|
||||
"version": "0.1.47"
|
||||
},
|
||||
"0.1": {
|
||||
"version": "0.1.45"
|
||||
"version": "0.1.47"
|
||||
},
|
||||
"0.1.47": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "906d6f7292231b79d2db04ab04d5e188b6ac789bce7fbb3013130edb82f683c9"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "5395256cef3f879018851af1864218e28bbb3fad823fff6c02357a6ccac68ab9"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "cc621c60fb055d6849edbe2592be908c5ad0c04508392d7d28c487734a8e4791"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "b242da4b7c24c647e210fbacabafe7dd86161d04e261bd81ed07a0a466a06fee"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "f10a2a8197ecbae3e778d1a0b7ec10b080e389203f36a3d68366f57d80bdf3af"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "202a0f1b27cc67f17e001d8bf8af5a92dccaf1bb9852de0b89f3b9ad4827a5fd"
|
||||
}
|
||||
},
|
||||
"0.1.45": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
46
manifests/just.json
generated
46
manifests/just.json
generated
@@ -18,10 +18,52 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "1.24.0"
|
||||
"version": "1.25.2"
|
||||
},
|
||||
"1": {
|
||||
"version": "1.24.0"
|
||||
"version": "1.25.2"
|
||||
},
|
||||
"1.25": {
|
||||
"version": "1.25.2"
|
||||
},
|
||||
"1.25.2": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "ad56bf1a804243b51ef2c2eec4b3a8177f970ccc414cbbee219c2e5c06f7bcc9"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "f34de579d82b09d58e9a55759166d7d5642bc34893e0b3d53d2ca3f7e841d1cb"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "9108b612b674381b6baf667a06b1c8f870b2d6ac4fcb9c4eef53c0866a6ce8f4"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "049d624255d150f18b0f3a1257a163366b0dc22e16526214773903125145e515"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "71d3538b0ebcb21fba84c278a86fc6718dc5d01c38162ffd8bed2e66ead4daac"
|
||||
}
|
||||
},
|
||||
"1.25.1": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "84c638108f84144c82507a83e4611afa1a86f55b51e14a7a9056235640c56013"
|
||||
}
|
||||
},
|
||||
"1.25.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "1eeda5d8b319ce7868ee43748687f849e5a9ec2d03f64e0ebeda05af08f67af4"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "fbf2ef5ab53470c9fbce7f76b87008145addea90671148850e01ac204e3b461b"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "76a99c45395ccae0c2e8d95886c7059fde8f2f6cb25c697f55fd9252fe4930ea"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "c73a41acce0f0913405e33009d60645824576a1177039bed9c7575f4c153eb0f"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "cbea371d2e15e94b33f3097eaf0ec97906c7b41ed81cf2d7d3ca972f1774f3ea"
|
||||
}
|
||||
},
|
||||
"1.24": {
|
||||
"version": "1.24.0"
|
||||
|
||||
30
manifests/parse-changelog.json
generated
30
manifests/parse-changelog.json
generated
@@ -2,10 +2,36 @@
|
||||
"rust_crate": "parse-changelog",
|
||||
"template": null,
|
||||
"latest": {
|
||||
"version": "0.6.4"
|
||||
"version": "0.6.5"
|
||||
},
|
||||
"0.6": {
|
||||
"version": "0.6.4"
|
||||
"version": "0.6.5"
|
||||
},
|
||||
"0.6.5": {
|
||||
"x86_64_linux_musl": {
|
||||
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.5/parse-changelog-x86_64-unknown-linux-musl.tar.gz",
|
||||
"checksum": "73ab820f50a26cce5548e1c6d3e4e97fa008bbad80c4bc844fcc5e89a2b540ca"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.5/parse-changelog-x86_64-apple-darwin.tar.gz",
|
||||
"checksum": "aa12781c8d57865d18217286fdf10c1eb772636e7e86b20425335858d76aad03"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.5/parse-changelog-x86_64-pc-windows-msvc.tar.gz",
|
||||
"checksum": "98d13ef997a8da38d5b419d516c48da302042f054d3a89238cfab0f1ba6971ba"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.5/parse-changelog-aarch64-unknown-linux-musl.tar.gz",
|
||||
"checksum": "33f67cfed6d4ed71da5e873026723a70d79ca99a53bcb1ab2121b33c591ad45d"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.5/parse-changelog-aarch64-apple-darwin.tar.gz",
|
||||
"checksum": "77dffac8a8f562172ba0b19a998665a02c0a60f876eea047dc6126e5118378b9"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.5/parse-changelog-aarch64-pc-windows-msvc.tar.gz",
|
||||
"checksum": "e4f39aef6fe8e233cdac88e5029d785f48805a65ec31c511fbf3200e26ded97e"
|
||||
}
|
||||
},
|
||||
"0.6.4": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
29
manifests/protoc.json
generated
29
manifests/protoc.json
generated
@@ -2,10 +2,35 @@
|
||||
"rust_crate": null,
|
||||
"template": null,
|
||||
"latest": {
|
||||
"version": "3.25.3"
|
||||
"version": "3.26.0"
|
||||
},
|
||||
"3": {
|
||||
"version": "3.25.3"
|
||||
"version": "3.26.0"
|
||||
},
|
||||
"3.26": {
|
||||
"version": "3.26.0"
|
||||
},
|
||||
"3.26.0": {
|
||||
"x86_64_linux_gnu": {
|
||||
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v26.0/protoc-26.0-linux-x86_64.zip",
|
||||
"checksum": "3ed20f841fd9cb7a8344dd4158f6fcb67d333c8206b33a7dbb899bcbc08d92eb"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v26.0/protoc-26.0-osx-x86_64.zip",
|
||||
"checksum": "2624286cf7787c5b75af68d7766fe62bf92f459f1ee77f9a9a8cdae63bd285d1"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v26.0/protoc-26.0-win64.zip",
|
||||
"checksum": "f5a0e21c09e823fe5cc18d6057f8db7a3d5df420c09314d548b9139c4193156d"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v26.0/protoc-26.0-linux-aarch_64.zip",
|
||||
"checksum": "556e4f77fd3a04c0b31e3560540241e86ec576d447733f19a3f9c056724e9b03"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v26.0/protoc-26.0-osx-aarch_64.zip",
|
||||
"checksum": "218537fbdbd0054b516a346b89892a48626cb08bb8351c8d771c1545fd80c7c1"
|
||||
}
|
||||
},
|
||||
"3.25": {
|
||||
"version": "3.25.3"
|
||||
|
||||
19
manifests/shellcheck.json
generated
19
manifests/shellcheck.json
generated
@@ -19,7 +19,24 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.9.0"
|
||||
"version": "0.10.0"
|
||||
},
|
||||
"0.10": {
|
||||
"version": "0.10.0"
|
||||
},
|
||||
"0.10.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "6c881ab0698e4e6ea235245f22832860544f17ba386442fe7e9d629f8cbedf87"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "ef27684f23279d112d8ad84e0823642e43f838993bbb8c0963db9b58a90464c2"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "eb6cd53a54ea97a56540e9d296ce7e2fa68715aa507ff23574646c1e12b2e143"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "324a7e89de8fa2aed0d0c28f3dab59cf84c6d74264022c00c22af665ed1a09bb"
|
||||
}
|
||||
},
|
||||
"0.9": {
|
||||
"version": "0.9.0"
|
||||
|
||||
23
manifests/syft.json
generated
23
manifests/syft.json
generated
@@ -23,13 +23,30 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "1.0.0"
|
||||
"version": "1.0.1"
|
||||
},
|
||||
"1": {
|
||||
"version": "1.0.0"
|
||||
"version": "1.0.1"
|
||||
},
|
||||
"1.0": {
|
||||
"version": "1.0.0"
|
||||
"version": "1.0.1"
|
||||
},
|
||||
"1.0.1": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "420f90e57def27745e414efcb7a41384b2ccdccafca87c327096ca44621ab0ce"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "3730868e23a65c0c2b94bd1d3c7ce608176aa98b631bf98249f04bec1a035b12"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "95bc151e3a713a31f7ae7bfacbe0bda8c8d8e08e390038b0c2fc7220c1b9c49c"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "c8582aa0e1c92c84c4a751c739ac3d7ca48c88a54b5d1b884d0629d7df72a6f9"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "5dc061290afb7e8249dc590fcf4a7e15966346e73948415559855e1154fc0f42"
|
||||
}
|
||||
},
|
||||
"1.0.0": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
136
manifests/wasm-bindgen.json
generated
Normal file
136
manifests/wasm-bindgen.json
generated
Normal file
@@ -0,0 +1,136 @@
|
||||
{
|
||||
"rust_crate": "wasm-bindgen-cli",
|
||||
"template": {
|
||||
"x86_64_linux_musl": {
|
||||
"url": "https://github.com/rustwasm/wasm-bindgen/releases/download/${version}/wasm-bindgen-${version}-x86_64-unknown-linux-musl.tar.gz",
|
||||
"bin": [
|
||||
"wasm-bindgen-${version}-x86_64-unknown-linux-musl/wasm-bindgen-test-runner",
|
||||
"wasm-bindgen-${version}-x86_64-unknown-linux-musl/wasm-bindgen",
|
||||
"wasm-bindgen-${version}-x86_64-unknown-linux-musl/wasm2es6js"
|
||||
]
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"url": "https://github.com/rustwasm/wasm-bindgen/releases/download/${version}/wasm-bindgen-${version}-x86_64-apple-darwin.tar.gz",
|
||||
"bin": [
|
||||
"wasm-bindgen-${version}-x86_64-apple-darwin/wasm-bindgen-test-runner",
|
||||
"wasm-bindgen-${version}-x86_64-apple-darwin/wasm-bindgen",
|
||||
"wasm-bindgen-${version}-x86_64-apple-darwin/wasm2es6js"
|
||||
]
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/rustwasm/wasm-bindgen/releases/download/${version}/wasm-bindgen-${version}-x86_64-pc-windows-msvc.tar.gz",
|
||||
"bin": [
|
||||
"wasm-bindgen-${version}-x86_64-pc-windows-msvc/wasm-bindgen-test-runner.exe",
|
||||
"wasm-bindgen-${version}-x86_64-pc-windows-msvc/wasm-bindgen.exe",
|
||||
"wasm-bindgen-${version}-x86_64-pc-windows-msvc/wasm2es6js.exe"
|
||||
]
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"url": "https://github.com/rustwasm/wasm-bindgen/releases/download/${version}/wasm-bindgen-${version}-aarch64-unknown-linux-gnu.tar.gz",
|
||||
"bin": [
|
||||
"wasm-bindgen-${version}-aarch64-unknown-linux-gnu/wasm-bindgen-test-runner",
|
||||
"wasm-bindgen-${version}-aarch64-unknown-linux-gnu/wasm-bindgen",
|
||||
"wasm-bindgen-${version}-aarch64-unknown-linux-gnu/wasm2es6js"
|
||||
]
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/rustwasm/wasm-bindgen/releases/download/${version}/wasm-bindgen-${version}-aarch64-apple-darwin.tar.gz",
|
||||
"bin": [
|
||||
"wasm-bindgen-${version}-aarch64-apple-darwin/wasm-bindgen-test-runner",
|
||||
"wasm-bindgen-${version}-aarch64-apple-darwin/wasm-bindgen",
|
||||
"wasm-bindgen-${version}-aarch64-apple-darwin/wasm2es6js"
|
||||
]
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.2.92"
|
||||
},
|
||||
"0.2": {
|
||||
"version": "0.2.92"
|
||||
},
|
||||
"0.2.92": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "c6e43a3bf0be5231e0b72ea702f73b3f4f47c309037e8a332c5c2e41800ca934"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "1091b40f5e2cc67d10deb3b1260a92b97cef8851f2588708c2d4b6bef9444880"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "a23d556b35bc4d17222e324b205a1b66b1cdad630f62a1190ba6c42cf5ed2af7"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "ae6070b6f6a86160f9be02ee9c913820814825f6e8aff45b155a129a36acc0cb"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "9ac857faddd4368e5ad3f41b74bbc4c2d32c3726d008bd5760fc52c7c6843e48"
|
||||
}
|
||||
},
|
||||
"0.2.91": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "48123760cd139036125dbc07aaf09c73237d2bf910810b00a2dabbbac7a92e4e"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "8c9378515f5162d77c8bbec8925e2444e4509fc5fd4e42c218b70bd7e7b5c34d"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "9077f846f8e29dbc246688294b02474c4247e176739b43b0ce5df093e3c23ccf"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "06a93a6c4ca7166082e8c6179e9f1dc6ca1df822894669b5257cdff08692bf00"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "8f644617cbd12763268854cb550604f18e15a869c9b2e63ba977278fee99ff3d"
|
||||
}
|
||||
},
|
||||
"0.2.90": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "46131161e31617d102260b1420159fe5006f6b0fdb8a0a90fe7adc858b662132"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "374a460a4c8cf097e84725082da6c909830cbc6caa16538735bcc066971e3bcd"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "919b6f010164c5d2f28df505098d94c0ac3727c9aeeea2df12453008dc451c78"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "29075a17870097d800e471ec2a800f915c09c5c8d4b2b1436fd43381aa7bf480"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "d3724348014d028048b9539fac36858a0a1aba165814a69542d3038d65303093"
|
||||
}
|
||||
},
|
||||
"0.2.89": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "e6361f3069a8a94ca44f0eb6e22b1de59ee71236bba2acd0278f1387e09a90d0"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "5ca6b6e9a2b971cdc5571a54a963f6f13ae6263bbf921998feeef3ff6b6b70b7"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "5dd04e972fc0910122f5d9881aa49470e6734e5a1d3294030eaace738771fddc"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "4ca6d7cedf6d47eec55d739bfd228270061a1c2bb4b625442e2bb716d2cc7337"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "cff8b011832e0f17fc94e4673a2910b04cb11bd527736b96f94abea24ff674be"
|
||||
}
|
||||
},
|
||||
"0.2.88": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "d7dcb7f5ad1d0cb68df5d45ffd9119d1db3d42ee6d50a8b2d3c42a56c74bdd8e"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "0d1913322e657444c942c644abb687e46807fec31e3efbafb199a7932e677dcc"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "ed885be56d41c5c1d3b1495307d57a2d48b296cfe5afe92e06b6ea09c4ba4532"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "f13bb83170a3d44edfbebd263c695e6fb5815d77467490af1c49e2e8ec816803"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "712c787c411a765e5bf8f2f3f11db9d5ec823260b763e1017d6790e9b3c225ff"
|
||||
}
|
||||
}
|
||||
}
|
||||
33
manifests/wasmtime.json
generated
33
manifests/wasmtime.json
generated
@@ -2,13 +2,40 @@
|
||||
"rust_crate": "wasmtime-cli",
|
||||
"template": null,
|
||||
"latest": {
|
||||
"version": "18.0.2"
|
||||
"version": "18.0.3"
|
||||
},
|
||||
"18": {
|
||||
"version": "18.0.2"
|
||||
"version": "18.0.3"
|
||||
},
|
||||
"18.0": {
|
||||
"version": "18.0.2"
|
||||
"version": "18.0.3"
|
||||
},
|
||||
"18.0.3": {
|
||||
"x86_64_linux_gnu": {
|
||||
"url": "https://github.com/bytecodealliance/wasmtime/releases/download/v18.0.3/wasmtime-v18.0.3-x86_64-linux.tar.xz",
|
||||
"checksum": "1252dbd077fcdfc54da17a45860dc90c558f7f4d9301143bec9f59ce548301d8",
|
||||
"bin": "wasmtime-v18.0.3-x86_64-linux/wasmtime"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"url": "https://github.com/bytecodealliance/wasmtime/releases/download/v18.0.3/wasmtime-v18.0.3-x86_64-macos.tar.xz",
|
||||
"checksum": "b322a75579ee4bb911caf8046050f9f324918891016d07b71f4b9ec17ee8368a",
|
||||
"bin": "wasmtime-v18.0.3-x86_64-macos/wasmtime"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/bytecodealliance/wasmtime/releases/download/v18.0.3/wasmtime-v18.0.3-x86_64-windows.zip",
|
||||
"checksum": "63bd449deffa234714acf9c25dcb146590dbcf52ed6046a253d18d002f25ce30",
|
||||
"bin": "wasmtime-v18.0.3-x86_64-windows/wasmtime.exe"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"url": "https://github.com/bytecodealliance/wasmtime/releases/download/v18.0.3/wasmtime-v18.0.3-aarch64-linux.tar.xz",
|
||||
"checksum": "6f2cf8edb9a651adda57de7e64f78e621e6dca14f102ac202f263fb2f7de28f0",
|
||||
"bin": "wasmtime-v18.0.3-aarch64-linux/wasmtime"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/bytecodealliance/wasmtime/releases/download/v18.0.3/wasmtime-v18.0.3-aarch64-macos.tar.xz",
|
||||
"checksum": "ae5e1b5107c85cef66ec6e2bfca8511e56a6b42c237feffe74c31fb30a380d38",
|
||||
"bin": "wasmtime-v18.0.3-aarch64-macos/wasmtime"
|
||||
}
|
||||
},
|
||||
"18.0.2": {
|
||||
"x86_64_linux_gnu": {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"repository": "https://github.com/casey/just",
|
||||
"tag_prefix": "",
|
||||
"rust_crate": "${package}",
|
||||
"broken": ["1.25.1"],
|
||||
"asset_name": "${package}-${version}-${rust_target}.tar.gz",
|
||||
"platform": {
|
||||
"x86_64_linux_musl": {},
|
||||
|
||||
19
tools/codegen/base/wasm-bindgen.json
Normal file
19
tools/codegen/base/wasm-bindgen.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"repository": "https://github.com/rustwasm/wasm-bindgen",
|
||||
"tag_prefix": "",
|
||||
"rust_crate": "wasm-bindgen-cli",
|
||||
"version_range": ">= 0.2.88",
|
||||
"asset_name": "wasm-bindgen-${version}-${rust_target}.tar.gz",
|
||||
"bin": [
|
||||
"wasm-bindgen-${version}-${rust_target}/wasm-bindgen-test-runner${exe}",
|
||||
"wasm-bindgen-${version}-${rust_target}/wasm-bindgen${exe}",
|
||||
"wasm-bindgen-${version}-${rust_target}/wasm2es6js${exe}"
|
||||
],
|
||||
"platform": {
|
||||
"x86_64_linux_musl": {},
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {},
|
||||
"aarch64_linux_gnu": {},
|
||||
"aarch64_macos": {}
|
||||
}
|
||||
}
|
||||
@@ -41,6 +41,7 @@ fn main() -> Result<()> {
|
||||
let mut base_info: BaseManifest = serde_json::from_slice(&fs::read(
|
||||
workspace_root.join("tools/codegen/base").join(format!("{package}.json")),
|
||||
)?)?;
|
||||
base_info.validate();
|
||||
let repo = base_info
|
||||
.repository
|
||||
.strip_prefix("https://github.com/")
|
||||
@@ -116,7 +117,10 @@ fn main() -> Result<()> {
|
||||
for (platform, d) in &mut manifest.download_info {
|
||||
let template = &template.download_info[platform];
|
||||
d.url = Some(template.url.replace("${version}", version));
|
||||
d.bin = template.bin.as_ref().map(|s| s.replace("${version}", version));
|
||||
d.bin = template
|
||||
.bin
|
||||
.as_ref()
|
||||
.map(|s| s.map(|s| s.replace("${version}", version)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -310,11 +314,8 @@ fn main() -> Result<()> {
|
||||
download_info.insert(platform, ManifestDownloadInfo {
|
||||
url: Some(url),
|
||||
checksum: hash,
|
||||
bin: base_download_info
|
||||
.bin
|
||||
.as_ref()
|
||||
.or(base_info.bin.as_ref())
|
||||
.map(|s| {
|
||||
bin: base_download_info.bin.as_ref().or(base_info.bin.as_ref()).map(|s| {
|
||||
s.map(|s| {
|
||||
replace_vars(
|
||||
s,
|
||||
package,
|
||||
@@ -322,8 +323,9 @@ fn main() -> Result<()> {
|
||||
Some(platform),
|
||||
base_info.rust_crate.as_deref(),
|
||||
)
|
||||
.unwrap()
|
||||
})
|
||||
.transpose()?,
|
||||
}),
|
||||
});
|
||||
buf.clear();
|
||||
}
|
||||
@@ -451,7 +453,7 @@ fn main() -> Result<()> {
|
||||
let t = template.as_mut().unwrap();
|
||||
for (platform, d) in &mut manifest.download_info {
|
||||
let template_url = d.url.take().unwrap().replace(version, "${version}");
|
||||
let template_bin = d.bin.take().map(|s| s.replace(version, "${version}"));
|
||||
let template_bin = d.bin.take().map(|s| s.map(|s| s.replace(version, "${version}")));
|
||||
if let Some(d) = t.download_info.get(platform) {
|
||||
if template_url != d.url || template_bin != d.bin {
|
||||
template = None;
|
||||
@@ -711,9 +713,9 @@ struct ManifestDownloadInfo {
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
url: Option<String>,
|
||||
checksum: String,
|
||||
/// Default to ${tool}${exe}
|
||||
/// Path to binaries in archive. Default to `${tool}${exe}`.
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
bin: Option<String>,
|
||||
bin: Option<StringOrArray>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
@@ -725,9 +727,9 @@ struct ManifestTemplate {
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
struct ManifestTemplateDownloadInfo {
|
||||
url: String,
|
||||
/// Default to ${tool}${exe}
|
||||
/// Path to binaries in archive. Default to `${tool}${exe}`.
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
bin: Option<String>,
|
||||
bin: Option<StringOrArray>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
@@ -742,14 +744,26 @@ struct BaseManifest {
|
||||
default_major_version: Option<String>,
|
||||
/// Asset name patterns.
|
||||
asset_name: Option<StringOrArray>,
|
||||
/// Path to binary in archive. Default to `${tool}${exe}`.
|
||||
bin: Option<String>,
|
||||
/// Path to binaries in archive. Default to `${tool}${exe}`.
|
||||
bin: Option<StringOrArray>,
|
||||
signing: Option<Signing>,
|
||||
#[serde(default)]
|
||||
broken: Vec<semver::Version>,
|
||||
platform: BTreeMap<HostPlatform, BaseManifestPlatformInfo>,
|
||||
version_range: Option<String>,
|
||||
}
|
||||
impl BaseManifest {
|
||||
fn validate(&self) {
|
||||
if let Some(bin) = &self.bin {
|
||||
assert!(!bin.as_slice().is_empty());
|
||||
}
|
||||
for m in self.platform.values() {
|
||||
if let Some(bin) = &m.bin {
|
||||
assert!(!bin.as_slice().is_empty());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
@@ -772,11 +786,11 @@ enum SigningKind {
|
||||
struct BaseManifestPlatformInfo {
|
||||
/// Asset name patterns. Default to the value at `BaseManifest::asset_name`.
|
||||
asset_name: Option<StringOrArray>,
|
||||
/// Path to binary in archive. Default to the value at `BaseManifest::bin`.
|
||||
bin: Option<String>,
|
||||
/// Path to binaries in archive. Default to the value at `BaseManifest::bin`.
|
||||
bin: Option<StringOrArray>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Deserialize)]
|
||||
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||
#[serde(untagged)]
|
||||
enum StringOrArray {
|
||||
String(String),
|
||||
@@ -786,8 +800,14 @@ enum StringOrArray {
|
||||
impl StringOrArray {
|
||||
fn as_slice(&self) -> &[String] {
|
||||
match self {
|
||||
Self::Array(v) => v,
|
||||
Self::String(s) => slice::from_ref(s),
|
||||
Self::Array(v) => v,
|
||||
}
|
||||
}
|
||||
fn map(&self, mut f: impl FnMut(&String) -> String) -> Self {
|
||||
match self {
|
||||
Self::String(s) => Self::String(f(s)),
|
||||
Self::Array(v) => Self::Array(v.iter().map(f).collect()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,8 @@ trap 's=$?; echo >&2 "$0: error on line "${LINENO}": ${BASH_COMMAND}"; exit ${s}
|
||||
# - shfmt
|
||||
# - shellcheck
|
||||
# - npm
|
||||
# - jq and yq
|
||||
# - jq
|
||||
# - python
|
||||
# - rustup (if Rust code exists)
|
||||
# - clang-format (if C/C++ code exists)
|
||||
#
|
||||
@@ -53,6 +54,11 @@ error() {
|
||||
fi
|
||||
should_fail=1
|
||||
}
|
||||
venv() {
|
||||
local bin="$1"
|
||||
shift
|
||||
"${venv_bin}/${bin}${exe}" "$@"
|
||||
}
|
||||
|
||||
if [[ $# -gt 0 ]]; then
|
||||
cat <<EOF
|
||||
@@ -204,32 +210,54 @@ if [[ -n "$(git ls-files '*.yml' '*.js' '*.json')" ]]; then
|
||||
# Check GitHub workflows.
|
||||
if [[ -d .github/workflows ]]; then
|
||||
info "checking GitHub workflows"
|
||||
if type -P jq &>/dev/null && type -P yq &>/dev/null; then
|
||||
for workflow in .github/workflows/*.yml; do
|
||||
# The top-level permissions must be weak as they are referenced by all jobs.
|
||||
permissions=$(yq -c '.permissions' "${workflow}")
|
||||
case "${permissions}" in
|
||||
'{"contents":"read"}' | '{"contents":"none"}') ;;
|
||||
null) error "${workflow}: top level permissions not found; it must be 'contents: read' or weaker permissions" ;;
|
||||
*) error "${workflow}: only 'contents: read' and weaker permissions are allowed at top level; if you want to use stronger permissions, please set job-level permissions" ;;
|
||||
esac
|
||||
# Make sure the 'needs' section is not out of date.
|
||||
if grep -q '# tidy:needs' "${workflow}" && ! grep -Eq '# *needs: \[' "${workflow}"; then
|
||||
# shellcheck disable=SC2207
|
||||
jobs_actual=($(yq '.jobs' "${workflow}" | jq -r 'keys_unsorted[]'))
|
||||
unset 'jobs_actual[${#jobs_actual[@]}-1]'
|
||||
# shellcheck disable=SC2207
|
||||
jobs_expected=($(yq -r '.jobs."ci-success".needs[]' "${workflow}"))
|
||||
if [[ "${jobs_actual[*]}" != "${jobs_expected[*]+"${jobs_expected[*]}"}" ]]; then
|
||||
printf -v jobs '%s, ' "${jobs_actual[@]}"
|
||||
sed -i "s/needs: \[.*\] # tidy:needs/needs: [${jobs%, }] # tidy:needs/" "${workflow}"
|
||||
check_diff "${workflow}"
|
||||
error "${workflow}: please update 'needs' section in 'ci-success' job"
|
||||
fi
|
||||
if type -P jq &>/dev/null; then
|
||||
if type -P python3 &>/dev/null || type -P python &>/dev/null; then
|
||||
py_suffix=''
|
||||
if type -P python3 &>/dev/null; then
|
||||
py_suffix='3'
|
||||
fi
|
||||
done
|
||||
exe=''
|
||||
venv_bin='.venv/bin'
|
||||
case "$(uname -s)" in
|
||||
MINGW* | MSYS* | CYGWIN* | Windows_NT)
|
||||
exe='.exe'
|
||||
venv_bin='.venv/Scripts'
|
||||
;;
|
||||
esac
|
||||
if [[ ! -d .venv ]]; then
|
||||
"python${py_suffix}" -m venv .venv
|
||||
fi
|
||||
if [[ ! -e "${venv_bin}/yq${exe}" ]]; then
|
||||
venv "pip${py_suffix}" install yq
|
||||
fi
|
||||
for workflow in .github/workflows/*.yml; do
|
||||
# The top-level permissions must be weak as they are referenced by all jobs.
|
||||
permissions=$(venv yq -c '.permissions' "${workflow}")
|
||||
case "${permissions}" in
|
||||
'{"contents":"read"}' | '{"contents":"none"}') ;;
|
||||
null) error "${workflow}: top level permissions not found; it must be 'contents: read' or weaker permissions" ;;
|
||||
*) error "${workflow}: only 'contents: read' and weaker permissions are allowed at top level; if you want to use stronger permissions, please set job-level permissions" ;;
|
||||
esac
|
||||
# Make sure the 'needs' section is not out of date.
|
||||
if grep -q '# tidy:needs' "${workflow}" && ! grep -Eq '# *needs: \[' "${workflow}"; then
|
||||
# shellcheck disable=SC2207
|
||||
jobs_actual=($(venv yq '.jobs' "${workflow}" | jq -r 'keys_unsorted[]'))
|
||||
unset 'jobs_actual[${#jobs_actual[@]}-1]'
|
||||
# shellcheck disable=SC2207
|
||||
jobs_expected=($(venv yq -r '.jobs."ci-success".needs[]' "${workflow}"))
|
||||
if [[ "${jobs_actual[*]}" != "${jobs_expected[*]+"${jobs_expected[*]}"}" ]]; then
|
||||
printf -v jobs '%s, ' "${jobs_actual[@]}"
|
||||
sed -i "s/needs: \[.*\] # tidy:needs/needs: [${jobs%, }] # tidy:needs/" "${workflow}"
|
||||
check_diff "${workflow}"
|
||||
error "${workflow}: please update 'needs' section in 'ci-success' job"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
else
|
||||
warn "'python3' is not installed; skipped GitHub workflow check"
|
||||
fi
|
||||
else
|
||||
warn "'jq' or 'yq' is not installed; skipped GitHub workflow check"
|
||||
warn "'jq' is not installed; skipped GitHub workflow check"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user