Skip to content

Commit 6448e93

Browse files
authored
lean: init elan (#124)
1 parent 0625874 commit 6448e93

File tree

5 files changed

+46
-2
lines changed

5 files changed

+46
-2
lines changed

src/lean.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pub mod elan;

src/lean/elan.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
use structopt::StructOpt;
2+
3+
#[derive(Debug, StructOpt)]
4+
pub struct ElanConfig {
5+
#[structopt(long, default_value = "3")]
6+
pub retain_elan_versions: usize,
7+
#[structopt(long, default_value = "30")]
8+
pub retain_lean_versions: usize,
9+
}

src/main.rs

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ mod html_scanner;
3232
mod index_pipe;
3333
#[macro_use]
3434
mod merge_pipe;
35+
mod lean;
3536
mod metadata;
3637
mod opts;
3738
mod pypi;
@@ -226,7 +227,7 @@ fn main() {
226227
let script_src = rewrite_pipe::RewritePipe::new(
227228
stream_pipe::ByteStreamPipe::new(
228229
source.get_script(),
229-
buffer_path.clone().unwrap(),
230+
buffer_path.clone().expect("buffer path is not present"),
230231
false,
231232
),
232233
buffer_path.clone().unwrap(),
@@ -321,6 +322,36 @@ fn main() {
321322
index_bytes_pipe!(buffer_path, prefix, false, 999)
322323
);
323324
}
325+
Source::Elan(source) => {
326+
let elan_src = stream_pipe::ByteStreamPipe::new(
327+
GitHubRelease::new(
328+
String::from("leanprover/elan"),
329+
source.retain_elan_versions,
330+
),
331+
buffer_path.clone().unwrap(),
332+
true,
333+
);
334+
let lean_src = stream_pipe::ByteStreamPipe::new(
335+
GitHubRelease::new(
336+
String::from("leanprover/lean4"),
337+
source.retain_lean_versions,
338+
),
339+
buffer_path.clone().unwrap(),
340+
true,
341+
);
342+
let unified = merge_pipe! {
343+
elan: elan_src,
344+
lean: lean_src,
345+
};
346+
let indexed = index_pipe::IndexPipe::new(
347+
unified,
348+
buffer_path.clone().unwrap(),
349+
prefix.clone().unwrap(),
350+
999,
351+
);
352+
353+
transfer!(opts, indexed, transfer_config, id_pipe!());
354+
}
324355
}
325356
});
326357
}

src/opts.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use crate::ghcup::Ghcup as GhcupConfig;
66
use crate::github_release::GitHubRelease;
77
use crate::gradle::Gradle;
88
use crate::homebrew::HomebrewConfig;
9+
use crate::lean::elan::ElanConfig;
910
use crate::pypi::Pypi as PypiConfig;
1011
use crate::rsync::Rsync as RsyncConfig;
1112
use crate::rustup::Rustup as RustupConfig;
@@ -37,6 +38,8 @@ pub enum Source {
3738
Gradle(Gradle),
3839
#[structopt(about = "rustup")]
3940
Rustup(RustupConfig),
41+
#[structopt(about = "elan")]
42+
Elan(ElanConfig),
4043
}
4144

4245
#[derive(Debug)]

src/pypi.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ async fn bigquery_index(logger: &Logger) -> Result<Vec<String>> {
193193

194194
fn version_from_filename(filename: &str) -> Option<Version> {
195195
static RE_VERSION: once_cell::sync::Lazy<Regex> = once_cell::sync::Lazy::new(|| {
196-
Regex::new(r#"^\w+-([\w.-_+]+).*(.tar.gz|tar.bz2|.zip|.whl|.exe|.egg)$"#).unwrap()
196+
Regex::new(r"^\w+-([\w.-_+]+).*(.tar.gz|tar.bz2|.zip|.whl|.exe|.egg)$").unwrap()
197197
});
198198
RE_VERSION
199199
.captures(filename)

0 commit comments

Comments
 (0)