Skip to content

Commit fc63ab0

Browse files
committed
rust: use a struct to store per-triple release metadata
Just stores the suffixes for now. We'll expand this later.
1 parent 7466e5d commit fc63ab0

File tree

2 files changed

+97
-21
lines changed

2 files changed

+97
-21
lines changed

src/github.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
44

55
use {
6-
crate::release::SUFFIXES_BY_TRIPLE,
6+
crate::release::RELEASE_TRIPLES,
77
anyhow::{anyhow, Result},
88
clap::ArgMatches,
99
futures::StreamExt,
@@ -102,14 +102,14 @@ pub async fn command_fetch_release_distributions(args: &ArgMatches<'_>) -> Resul
102102

103103
let name = zf.name().to_string();
104104

105-
if let Some(suffixes) = SUFFIXES_BY_TRIPLE.iter().find_map(|(triple, suffixes)| {
105+
if let Some(release) = RELEASE_TRIPLES.iter().find_map(|(triple, release)| {
106106
if name.contains(triple) {
107-
Some(suffixes)
107+
Some(release)
108108
} else {
109109
None
110110
}
111111
}) {
112-
if suffixes.iter().any(|suffix| name.contains(suffix)) {
112+
if release.suffixes.iter().any(|suffix| name.contains(suffix)) {
113113
let dest_path = dest_dir.join(&name);
114114
let mut buf = vec![];
115115
zf.read_to_end(&mut buf)?;
@@ -170,8 +170,8 @@ pub async fn command_upload_release_distributions(args: &ArgMatches<'_>) -> Resu
170170

171171
let mut wanted_filenames = BTreeSet::new();
172172
for version in python_versions {
173-
for (triple, suffixes) in SUFFIXES_BY_TRIPLE.iter() {
174-
for suffix in suffixes {
173+
for (triple, release) in RELEASE_TRIPLES.iter() {
174+
for suffix in &release.suffixes {
175175
let extension = if suffix.contains("install_only") {
176176
"tar.gz"
177177
} else {

src/release.rs

Lines changed: 91 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,111 @@
44

55
use {once_cell::sync::Lazy, std::collections::BTreeMap};
66

7-
pub static SUFFIXES_BY_TRIPLE: Lazy<BTreeMap<&'static str, Vec<&'static str>>> = Lazy::new(|| {
7+
/// Describes a release for a given target triple.
8+
pub struct TripleRelease {
9+
/// Build suffixes to release.
10+
pub suffixes: Vec<&'static str>,
11+
}
12+
13+
pub static RELEASE_TRIPLES: Lazy<BTreeMap<&'static str, TripleRelease>> = Lazy::new(|| {
814
let mut h = BTreeMap::new();
915

1016
// macOS.
1117
let macos_suffixes = vec!["debug", "lto", "pgo", "pgo+lto", "install_only"];
12-
h.insert("aarch64-apple-darwin", macos_suffixes.clone());
13-
h.insert("x86_64-apple-darwin", macos_suffixes);
18+
h.insert(
19+
"aarch64-apple-darwin",
20+
TripleRelease {
21+
suffixes: macos_suffixes.clone(),
22+
},
23+
);
24+
h.insert(
25+
"x86_64-apple-darwin",
26+
TripleRelease {
27+
suffixes: macos_suffixes,
28+
},
29+
);
1430

1531
// Windows.
1632
let windows_suffixes = vec!["shared-pgo", "static-noopt", "shared-install_only"];
17-
h.insert("i686-pc-windows-msvc", windows_suffixes.clone());
18-
h.insert("x86_64-pc-windows-msvc", windows_suffixes);
33+
h.insert(
34+
"i686-pc-windows-msvc",
35+
TripleRelease {
36+
suffixes: windows_suffixes.clone(),
37+
},
38+
);
39+
h.insert(
40+
"x86_64-pc-windows-msvc",
41+
TripleRelease {
42+
suffixes: windows_suffixes,
43+
},
44+
);
1945

2046
// Linux.
2147
let linux_suffixes_pgo = vec!["debug", "lto", "pgo", "pgo+lto", "install_only"];
2248
let linux_suffixes_nopgo = vec!["debug", "lto", "noopt", "install_only"];
2349

24-
h.insert("aarch64-unknown-linux-gnu", linux_suffixes_nopgo.clone());
50+
h.insert(
51+
"aarch64-unknown-linux-gnu",
52+
TripleRelease {
53+
suffixes: linux_suffixes_nopgo.clone(),
54+
},
55+
);
2556

26-
h.insert("i686-unknown-linux-gnu", linux_suffixes_pgo.clone());
57+
h.insert(
58+
"i686-unknown-linux-gnu",
59+
TripleRelease {
60+
suffixes: linux_suffixes_pgo.clone(),
61+
},
62+
);
2763

28-
h.insert("x86_64-unknown-linux-gnu", linux_suffixes_pgo.clone());
29-
h.insert("x86_64_v2-unknown-linux-gnu", linux_suffixes_pgo.clone());
30-
h.insert("x86_64_v3-unknown-linux-gnu", linux_suffixes_pgo.clone());
31-
h.insert("x86_64_v4-unknown-linux-gnu", linux_suffixes_nopgo.clone());
32-
h.insert("x86_64-unknown-linux-musl", linux_suffixes_nopgo.clone());
33-
h.insert("x86_64_v2-unknown-linux-musl", linux_suffixes_nopgo.clone());
34-
h.insert("x86_64_v3-unknown-linux-musl", linux_suffixes_nopgo.clone());
35-
h.insert("x86_64_v4-unknown-linux-musl", linux_suffixes_nopgo.clone());
64+
h.insert(
65+
"x86_64-unknown-linux-gnu",
66+
TripleRelease {
67+
suffixes: linux_suffixes_pgo.clone(),
68+
},
69+
);
70+
h.insert(
71+
"x86_64_v2-unknown-linux-gnu",
72+
TripleRelease {
73+
suffixes: linux_suffixes_pgo.clone(),
74+
},
75+
);
76+
h.insert(
77+
"x86_64_v3-unknown-linux-gnu",
78+
TripleRelease {
79+
suffixes: linux_suffixes_pgo.clone(),
80+
},
81+
);
82+
h.insert(
83+
"x86_64_v4-unknown-linux-gnu",
84+
TripleRelease {
85+
suffixes: linux_suffixes_nopgo.clone(),
86+
},
87+
);
88+
h.insert(
89+
"x86_64-unknown-linux-musl",
90+
TripleRelease {
91+
suffixes: linux_suffixes_nopgo.clone(),
92+
},
93+
);
94+
h.insert(
95+
"x86_64_v2-unknown-linux-musl",
96+
TripleRelease {
97+
suffixes: linux_suffixes_nopgo.clone(),
98+
},
99+
);
100+
h.insert(
101+
"x86_64_v3-unknown-linux-musl",
102+
TripleRelease {
103+
suffixes: linux_suffixes_nopgo.clone(),
104+
},
105+
);
106+
h.insert(
107+
"x86_64_v4-unknown-linux-musl",
108+
TripleRelease {
109+
suffixes: linux_suffixes_nopgo.clone(),
110+
},
111+
);
36112

37113
h
38114
});

0 commit comments

Comments
 (0)