feat: move more tools away from asdf (#3184)

This commit is contained in:
jdx 2024-11-24 12:11:31 -06:00 committed by GitHub
parent f88950eb5d
commit d86c564930
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 63 additions and 39 deletions

View File

@ -75,12 +75,11 @@ editLink: false
| bottom | [aqua:ClementTsang/bottom](https://github.com/ClementTsang/bottom) [asdf:carbonteq/asdf-btm](https://github.com/carbonteq/asdf-btm) |
| boundary | [aqua:hashicorp/boundary](https://github.com/hashicorp/boundary) [asdf:asdf-community/asdf-hashicorp](https://github.com/asdf-community/asdf-hashicorp) |
| bpkg | [asdf:bpkg/asdf-bpkg](https://github.com/bpkg/asdf-bpkg) |
| brig | [asdf:Ibotta/asdf-brig](https://github.com/Ibotta/asdf-brig) |
| brig | [aqua:brigadecore/brigade](https://github.com/brigadecore/brigade) [asdf:Ibotta/asdf-brig](https://github.com/Ibotta/asdf-brig) |
| btrace | [asdf:joschi/asdf-btrace](https://github.com/joschi/asdf-btrace) |
| buf | [aqua:bufbuild/buf](https://github.com/bufbuild/buf) [ubi:bufbuild/buf](https://github.com/bufbuild/buf) [asdf:truepay/asdf-buf](https://github.com/truepay/asdf-buf) |
| buildpack | [asdf:johnlayton/asdf-buildpack](https://github.com/johnlayton/asdf-buildpack) |
| buildpack | [aqua:buildpacks/pack](https://github.com/buildpacks/pack) [asdf:johnlayton/asdf-buildpack](https://github.com/johnlayton/asdf-buildpack) |
| bun | [core:bun](https://mise.jdx.dev/lang/bun.html) |
| bundler | [asdf:jonathanmorley/asdf-bundler](https://github.com/jonathanmorley/asdf-bundler) |
| cabal | [aqua:haskell/cabal/cabal-install](https://github.com/haskell/cabal/cabal-install) |
| caddy | [aqua:caddyserver/caddy](https://github.com/caddyserver/caddy) [asdf:salasrod/asdf-caddy](https://github.com/salasrod/asdf-caddy) |
| calendarsync | [asdf:FeryET/asdf-calendarsync](https://github.com/FeryET/asdf-calendarsync) |
@ -119,12 +118,12 @@ editLink: false
| cljstyle | [asdf:abogoyavlensky/asdf-cljstyle](https://github.com/abogoyavlensky/asdf-cljstyle) |
| clojure | [asdf:asdf-community/asdf-clojure](https://github.com/asdf-community/asdf-clojure) |
| cloud-sql-proxy | [aqua:GoogleCloudPlatform/cloud-sql-proxy](https://github.com/GoogleCloudPlatform/cloud-sql-proxy) [asdf:pbr0ck3r/asdf-cloud-sql-proxy](https://github.com/pbr0ck3r/asdf-cloud-sql-proxy) |
| cloudflared | [asdf:threkk/asdf-cloudflared](https://github.com/threkk/asdf-cloudflared) |
| cloudflared | [aqua:cloudflare/cloudflared](https://github.com/cloudflare/cloudflared) [asdf:threkk/asdf-cloudflared](https://github.com/threkk/asdf-cloudflared) |
| clusterawsadm | [asdf:kahun/asdf-clusterawsadm](https://github.com/kahun/asdf-clusterawsadm) |
| clusterctl | [asdf:pfnet-research/asdf-clusterctl](https://github.com/pfnet-research/asdf-clusterctl) |
| cmake | [asdf:asdf-community/asdf-cmake](https://github.com/asdf-community/asdf-cmake) [vfox:version-fox/vfox-cmake](https://github.com/version-fox/vfox-cmake) |
| cmctl | [aqua:cert-manager/cmctl](https://github.com/cert-manager/cmctl) [asdf:asdf-community/asdf-cmctl](https://github.com/asdf-community/asdf-cmctl) |
| cockroach | [asdf:salasrod/asdf-cockroach](https://github.com/salasrod/asdf-cockroach) |
| cockroach | [aqua:cockroachdb/cockroach](https://github.com/cockroachdb/cockroach) [asdf:salasrod/asdf-cockroach](https://github.com/salasrod/asdf-cockroach) |
| cocoapods | [asdf:ronnnnn/asdf-cocoapods](https://github.com/ronnnnn/asdf-cocoapods) |
| codefresh | [asdf:gurukulkarni/asdf-codefresh](https://github.com/gurukulkarni/asdf-codefresh) |
| codeql | [asdf:bored-engineer/asdf-codeql](https://github.com/bored-engineer/asdf-codeql) |
@ -774,7 +773,7 @@ editLink: false
| vivid | [ubi:sharkdp/vivid](https://github.com/sharkdp/vivid) |
| vlang | [vfox:ahai-code/vfox-vlang](https://github.com/ahai-code/vfox-vlang) |
| vlt | [asdf:asdf-community/asdf-hashicorp](https://github.com/asdf-community/asdf-hashicorp) |
| vultr | [asdf:ikuradon/asdf-vultr-cli](https://github.com/ikuradon/asdf-vultr-cli) |
| vultr | [ubi:vultr/vultr-cli](https://github.com/vultr/vultr-cli) [asdf:ikuradon/asdf-vultr-cli](https://github.com/ikuradon/asdf-vultr-cli) |
| wasi-sdk | [asdf:coolreader18/asdf-wasi-sdk](https://github.com/coolreader18/asdf-wasi-sdk) |
| wasm3 | [asdf:tachyonicbytes/asdf-wasm3](https://github.com/tachyonicbytes/asdf-wasm3) |
| wasm4 | [asdf:jtakakura/asdf-wasm4](https://github.com/jtakakura/asdf-wasm4) |

View File

@ -121,15 +121,17 @@ bottom.backends = ["aqua:ClementTsang/bottom", "asdf:carbonteq/asdf-btm"]
bottom.test = ["btm --version", "bottom {{version}}"]
boundary.backends = ["aqua:hashicorp/boundary", "asdf:asdf-community/asdf-hashicorp"]
bpkg.backends = ["asdf:bpkg/asdf-bpkg"]
brig.backends = ["asdf:Ibotta/asdf-brig"]
brig.backends = ["aqua:brigadecore/brigade", "asdf:Ibotta/asdf-brig"]
brig.test = ["brig version", "Brigade client: version v{{version}}"]
btrace.backends = ["asdf:joschi/asdf-btrace"]
buf.backends = ["aqua:bufbuild/buf", "ubi:bufbuild/buf", "asdf:truepay/asdf-buf"]
# test fails on windows
# buf.test = ["buf --version", "{{version}}"]
buildpack.backends = ["asdf:johnlayton/asdf-buildpack"]
buildpack.aliases = ["pack", "buildpacks"]
buildpack.backends = ["aqua:buildpacks/pack", "asdf:johnlayton/asdf-buildpack"]
buildpack.test = ["pack --version", "{{version}}"]
bun.backends = ["core:bun"]
bun.test = ["bun --version", "{{version}}"]
bundler.backends = ["asdf:jonathanmorley/asdf-bundler"]
cabal.backends = ["aqua:haskell/cabal/cabal-install"]
# cabal.test = ["cabal --version", "cabal-install version {{version}}"]
caddy.backends = ["aqua:caddyserver/caddy", "asdf:salasrod/asdf-caddy"]
@ -171,12 +173,14 @@ clj-kondo.backends = ["asdf:rynkowsg/asdf-clj-kondo"]
cljstyle.backends = ["asdf:abogoyavlensky/asdf-cljstyle"]
clojure.backends = ["asdf:asdf-community/asdf-clojure"]
cloud-sql-proxy.backends = ["aqua:GoogleCloudPlatform/cloud-sql-proxy", "asdf:pbr0ck3r/asdf-cloud-sql-proxy"]
cloudflared.backends = ["asdf:threkk/asdf-cloudflared"]
cloudflared.backends = ["aqua:cloudflare/cloudflared", "asdf:threkk/asdf-cloudflared"]
cloudflared.test = ["cloudflared -v", "cloudflared version {{version}}"]
clusterawsadm.backends = ["asdf:kahun/asdf-clusterawsadm"]
clusterctl.backends = ["asdf:pfnet-research/asdf-clusterctl"]
cmake.backends = ["asdf:asdf-community/asdf-cmake", "vfox:version-fox/vfox-cmake"]
cmctl.backends = ["aqua:cert-manager/cmctl", "asdf:asdf-community/asdf-cmctl"]
cockroach.backends = ["asdf:salasrod/asdf-cockroach"]
cockroach.backends = ["aqua:cockroachdb/cockroach", "asdf:salasrod/asdf-cockroach"]
cockroach.test = ["cockroach version", "v{{version}}"]
cocoapods.backends = ["asdf:ronnnnn/asdf-cocoapods"]
codefresh.backends = ["asdf:gurukulkarni/asdf-codefresh"]
codeql.backends = ["asdf:bored-engineer/asdf-codeql"]
@ -900,7 +904,8 @@ vivid.backends = ["ubi:sharkdp/vivid"]
vlang.backends = ["vfox:ahai-code/vfox-vlang"]
vlt.backends = ["asdf:asdf-community/asdf-hashicorp"]
vultr.aliases = ["vultr-cli"]
vultr.backends = ["asdf:ikuradon/asdf-vultr-cli"]
vultr.backends = ["ubi:vultr/vultr-cli", "asdf:ikuradon/asdf-vultr-cli"]
vultr.test = ["vultr-cli version", "Vultr-CLI v3.4.0"]
wasi-sdk.backends = ["asdf:coolreader18/asdf-wasi-sdk"]
wasm3.backends = ["asdf:tachyonicbytes/asdf-wasm3"]
wasm4.backends = ["asdf:jtakakura/asdf-wasm4"]

View File

@ -1,8 +1,3 @@
asdf:Ibotta/asdf-brig
asdf:joschi/asdf-btrace
asdf:johnlayton/asdf-buildpack
asdf:jonathanmorley/asdf-bundler
asdf:FeryET/asdf-calendarsync
asdf:barmac/asdf-camunda-modeler
asdf:mise-plugins/asdf-cargo-make
@ -26,11 +21,9 @@ asdf:tinybirdco/asdf-clickhouse
asdf:rynkowsg/asdf-clj-kondo
asdf:abogoyavlensky/asdf-cljstyle
asdf:asdf-community/asdf-clojure
asdf:threkk/asdf-cloudflared
asdf:kahun/asdf-clusterawsadm
asdf:pfnet-research/asdf-clusterctl
asdf:asdf-community/asdf-cmake
asdf:salasrod/asdf-cockroach
asdf:ronnnnn/asdf-cocoapods
asdf:gurukulkarni/asdf-codefresh
asdf:bored-engineer/asdf-codeql
@ -356,7 +349,6 @@ asdf:pdemagny/asdf-velad
asdf:tsuyoshicho/asdf-vim
asdf:tuist/asdf-virtualos
asdf:asdf-community/asdf-hashicorp
asdf:ikuradon/asdf-vultr-cli
asdf:coolreader18/asdf-wasi-sdk
asdf:tachyonicbytes/asdf-wasm3
asdf:jtakakura/asdf-wasm4

View File

@ -61,6 +61,7 @@ pub struct AquaPackage {
pub files: Vec<AquaFile>,
pub replacements: HashMap<String, String>,
pub version_prefix: Option<String>,
pub version_source: Option<String>,
pub version_filter: Option<String>,
pub checksum: Option<AquaChecksum>,
pub slsa_provenance: Option<AquaSlsaProvenance>,
@ -276,11 +277,11 @@ impl AquaPackage {
debug!("no asset or url for {}/{}", self.repo_owner, self.repo_name);
"".to_string()
};
if asset.ends_with(".tar.gz") {
if asset.ends_with(".tar.gz") || asset.ends_with(".tgz") {
"tar.gz"
} else if asset.ends_with(".tar.xz") {
} else if asset.ends_with(".tar.xz") || asset.ends_with(".txz") {
"tar.xz"
} else if asset.ends_with(".tar.bz2") {
} else if asset.ends_with(".tar.bz2") || asset.ends_with(".tbz2") {
"tar.bz2"
} else if asset.ends_with(".gz") {
"gz"

View File

@ -44,24 +44,30 @@ impl Backend for AquaBackend {
.get_or_try_init(|| {
let pkg = AQUA_REGISTRY.package(&self.id)?;
if !pkg.repo_owner.is_empty() && !pkg.repo_name.is_empty() {
Ok(
let versions = if let Some("github_tag") = pkg.version_source.as_deref() {
github::list_tags(&format!("{}/{}", pkg.repo_owner, pkg.repo_name))?
} else {
github::list_releases(&format!("{}/{}", pkg.repo_owner, pkg.repo_name))?
.into_iter()
.filter_map(|r| {
let mut v = r.tag_name.as_str();
if let Some(prefix) = &pkg.version_prefix {
if let Some(_v) = v.strip_prefix(prefix) {
v = _v
} else {
return None;
}
.map(|r| r.tag_name)
.collect_vec()
};
Ok(versions
.into_iter()
.filter_map(|v| {
let mut v = v.as_str();
if let Some(prefix) = &pkg.version_prefix {
if let Some(_v) = v.strip_prefix(prefix) {
v = _v
} else {
return None;
}
v = v.strip_prefix('v').unwrap_or(v);
Some(v.to_string())
})
.rev()
.collect_vec(),
)
}
v = v.strip_prefix('v').unwrap_or(v);
Some(v.to_string())
})
.rev()
.collect())
} else {
warn!("no aqua registry found for {}", self.ba);
Ok(vec![])
@ -276,7 +282,8 @@ impl AquaBackend {
.find(|(_, f)| f == filename)
.map(|(c, _)| c)
.unwrap_or(checksum_file);
let checksum = format!("{}:{}", checksum.algorithm(), checksum_str.trim());
let checksum_str = checksum_str.split_whitespace().next().unwrap();
let checksum = format!("{}:{}", checksum.algorithm(), checksum_str);
tv.checksums.insert(filename.to_string(), checksum);
}
}

View File

@ -14,6 +14,11 @@ pub struct GithubRelease {
pub assets: Vec<GithubAsset>,
}
#[derive(Debug, Deserialize)]
pub struct GithubTag {
pub name: String,
}
#[derive(Debug, Deserialize)]
pub struct GithubAsset {
pub name: String,
@ -37,6 +42,21 @@ pub fn list_releases(repo: &str) -> eyre::Result<Vec<GithubRelease>> {
Ok(releases)
}
pub fn list_tags(repo: &str) -> eyre::Result<Vec<String>> {
let url = format!("https://api.github.com/repos/{}/tags", repo);
let (mut tags, mut headers) = crate::http::HTTP_FETCH.json_headers::<Vec<GithubTag>, _>(url)?;
if *env::MISE_LIST_ALL_VERSIONS {
while let Some(next) = next_page(&headers) {
let (more, h) = crate::http::HTTP_FETCH.json_headers::<Vec<GithubTag>, _>(next)?;
tags.extend(more);
headers = h;
}
}
Ok(tags.into_iter().map(|t| t.name).collect())
}
pub fn get_release(repo: &str, tag: &str) -> eyre::Result<GithubRelease> {
let url = format!(
"https://api.github.com/repos/{}/releases/tags/{}",