mirror of https://github.com/jdx/mise
parent
f47c0f4a89
commit
8aa1417ae1
|
@ -5,6 +5,12 @@ assert "mise x ubi:goreleaser/goreleaser@v1.25.0 -- goreleaser -v | grep -o 1.25
|
||||||
mise use ubi:kellyjonbrazil/jc@1.25.3
|
mise use ubi:kellyjonbrazil/jc@1.25.3
|
||||||
assert_contains "$MISE_DATA_DIR/shims/jc --version" "jc version: 1.25.3"
|
assert_contains "$MISE_DATA_DIR/shims/jc --version" "jc version: 1.25.3"
|
||||||
|
|
||||||
|
# only run on linux/amd64
|
||||||
|
if [ "$(uname -m)" = "x86_64" ] && [ "$(uname -s)" = "Linux" ]; then
|
||||||
|
mise use ubi:https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linux64-gpl.tar.xz[exe=ffmpeg]
|
||||||
|
assert_contains "$MISE_DATA_DIR/shims/ffmpeg -version" "ffmpeg version"
|
||||||
|
fi
|
||||||
|
|
||||||
cat <<EOF >mise.toml
|
cat <<EOF >mise.toml
|
||||||
[tools]
|
[tools]
|
||||||
"ubi:cilium/cilium-cli" = { version = "latest", exe = "cilium" }
|
"ubi:cilium/cilium-cli" = { version = "latest", exe = "cilium" }
|
||||||
|
|
|
@ -120,32 +120,37 @@ impl Backend for UbiBackend {
|
||||||
let extract_all = opts.get("extract_all").is_some_and(|v| v == "true");
|
let extract_all = opts.get("extract_all").is_some_and(|v| v == "true");
|
||||||
let bin_dir = tv.install_path();
|
let bin_dir = tv.install_path();
|
||||||
|
|
||||||
let release: Result<_, eyre::Report> = match forge {
|
if !name_is_url(&self.tool_name()) {
|
||||||
ForgeType::GitHub => {
|
let release: Result<_, eyre::Report> = match forge {
|
||||||
github::get_release_for_url(api_url, &self.tool_name(), &v).map(|_| "github")
|
ForgeType::GitHub => {
|
||||||
|
github::get_release_for_url(api_url, &self.tool_name(), &v).map(|_| "github")
|
||||||
|
}
|
||||||
|
ForgeType::GitLab => {
|
||||||
|
gitlab::get_release_for_url(api_url, &self.tool_name(), &v).map(|_| "gitlab")
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if let Err(err) = release {
|
||||||
|
// this can fail with a rate limit error or 404, either way, try prefixing and if it fails, try without the prefix
|
||||||
|
// if http::error_code(&err) == Some(404) {
|
||||||
|
debug!(
|
||||||
|
"Failed to get release for {}, trying with 'v' prefix: {}",
|
||||||
|
tv, err
|
||||||
|
);
|
||||||
|
v = format!("v{v}");
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
ForgeType::GitLab => {
|
|
||||||
gitlab::get_release_for_url(api_url, &self.tool_name(), &v).map(|_| "gitlab")
|
|
||||||
}
|
|
||||||
};
|
|
||||||
if let Err(err) = release {
|
|
||||||
// this can fail with a rate limit error or 404, either way, try prefixing and if it fails, try without the prefix
|
|
||||||
// if http::error_code(&err) == Some(404) {
|
|
||||||
debug!(
|
|
||||||
"Failed to get release for {}, trying with 'v' prefix: {}",
|
|
||||||
tv, err
|
|
||||||
);
|
|
||||||
v = format!("v{v}");
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let install = |v: &str| {
|
let install = |v: &str| {
|
||||||
// Workaround because of not knowing how to pull out the value correctly without quoting
|
// Workaround because of not knowing how to pull out the value correctly without quoting
|
||||||
let name = self.tool_name();
|
let name = self.tool_name();
|
||||||
|
|
||||||
let mut builder = UbiBuilder::new().project(&name).install_dir(&bin_dir);
|
let mut builder = UbiBuilder::new().install_dir(&bin_dir);
|
||||||
|
|
||||||
if v != "latest" {
|
if name_is_url(&name) {
|
||||||
|
builder = builder.url(&name);
|
||||||
|
} else {
|
||||||
|
builder = builder.project(&name);
|
||||||
builder = builder.tag(v);
|
builder = builder.tag(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue