Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bytecodealliance
GitHub Repository: bytecodealliance/wasmtime
Path: blob/main/ci/find-latest-release.rs
1685 views
1
use std::process::Command;
2
fn main() {
3
let output = Command::new("git")
4
.arg("for-each-ref")
5
.arg("refs/remotes/origin")
6
.arg("--format")
7
.arg("%(refname)")
8
.output()
9
.unwrap();
10
assert!(output.status.success());
11
let mut releases = std::str::from_utf8(&output.stdout)
12
.unwrap()
13
.lines()
14
.filter_map(|l| l.strip_prefix("refs/remotes/origin/release-"))
15
.filter_map(|l| {
16
let mut parts = l.split('.');
17
let major = parts.next()?.parse::<u32>().ok()?;
18
let minor = parts.next()?.parse::<u32>().ok()?;
19
let patch = parts.next()?.parse::<u32>().ok()?;
20
Some((major, minor, patch))
21
})
22
.collect::<Vec<_>>();
23
releases.sort();
24
let (major, minor, patch) = releases.last().unwrap();
25
println!("{}.{}.{}", major, minor, patch);
26
}
27
28