mirror of
https://github.com/TaKO8Ki/awesome-alternatives-in-rust
synced 2024-11-10 06:04:13 +00:00
Improve Rust idiomaticity (#67)
This commit is contained in:
parent
df9f064f86
commit
bd37abddc9
1 changed files with 20 additions and 22 deletions
42
src/main.rs
42
src/main.rs
|
@ -183,7 +183,7 @@ fn get_url_core(url: String) -> BoxFuture<'static, (String, Result<(), CheckerEr
|
||||||
|
|
||||||
warn!("Error while getting {}, retrying: {}", url, status);
|
warn!("Error while getting {}, retrying: {}", url, status);
|
||||||
if status.is_redirection() {
|
if status.is_redirection() {
|
||||||
res = Err(CheckerError::HttpError {status: status.as_u16(), location: ok.headers().get(header::LOCATION).and_then(|h| h.to_str().ok()).map(|x| x.to_string())});
|
res = Err(CheckerError::HttpError {status: status.as_u16(), location: ok.headers().get(header::LOCATION).and_then(|h| h.to_str().map(|x| x.to_string()).ok())});
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
res = Err(CheckerError::HttpError {status: status.as_u16(), location: None});
|
res = Err(CheckerError::HttpError {status: status.as_u16(), location: None});
|
||||||
|
@ -202,16 +202,16 @@ fn get_url_core(url: String) -> BoxFuture<'static, (String, Result<(), CheckerEr
|
||||||
res = Err(CheckerError::TravisBuildUnknown);
|
res = Err(CheckerError::TravisBuildUnknown);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
let query = matches.get(1).map(|x| x.as_str()).unwrap_or("");
|
let query = matches.get(1).map(|x| x.as_str()).unwrap_or_default();
|
||||||
if !query.starts_with("?") || query.find("branch=").is_none() {
|
if !query.starts_with('?') || query.contains("branch=") {
|
||||||
res = Err(CheckerError::TravisBuildNoBranch);
|
res = Err(CheckerError::TravisBuildNoBranch);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let Some(matches) = GITHUB_ACTIONS_REGEX.captures(&url) {
|
if let Some(matches) = GITHUB_ACTIONS_REGEX.captures(&url) {
|
||||||
debug!("Github actions match {:?}", matches);
|
debug!("Github actions match {:?}", matches);
|
||||||
let query = matches.get(1).map(|x| x.as_str()).unwrap_or("");
|
let query = matches.get(1).map(|x| x.as_str()).unwrap_or_default();
|
||||||
if !query.starts_with("?") || query.find("branch=").is_none() {
|
if !query.starts_with('?') || query.contains("branch=") {
|
||||||
res = Err(CheckerError::GithubActionNoBranch);
|
res = Err(CheckerError::GithubActionNoBranch);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -251,27 +251,26 @@ async fn main() -> Result<(), Error> {
|
||||||
let mut results: Results = fs::read_to_string("results/results.yml")
|
let mut results: Results = fs::read_to_string("results/results.yml")
|
||||||
.map_err(|e| format_err!("{}", e))
|
.map_err(|e| format_err!("{}", e))
|
||||||
.and_then(|x| serde_yaml::from_str(&x).map_err(|e| format_err!("{}", e)))
|
.and_then(|x| serde_yaml::from_str(&x).map_err(|e| format_err!("{}", e)))
|
||||||
.unwrap_or(Results::new());
|
.unwrap_or_default();
|
||||||
|
|
||||||
let mut url_checks = vec![];
|
let mut url_checks = vec![];
|
||||||
|
|
||||||
let min_between_checks: Duration = Duration::days(3);
|
let min_between_checks: Duration = Duration::days(3);
|
||||||
let max_allowed_failed: Duration = Duration::days(7);
|
let max_allowed_failed: Duration = Duration::days(7);
|
||||||
let mut do_check = |url: String| {
|
let mut do_check = |url: String| {
|
||||||
if !url.starts_with("http") {
|
if url.starts_with("http") {
|
||||||
return;
|
used.insert(url.clone());
|
||||||
}
|
if let Some(link) = results.get(&url) {
|
||||||
used.insert(url.clone());
|
if let Working::Yes = link.working {
|
||||||
if let Some(link) = results.get(&url) {
|
let since = Local::now() - link.updated_at;
|
||||||
if let Working::Yes = link.working {
|
if since < min_between_checks {
|
||||||
let since = Local::now() - link.updated_at;
|
return;
|
||||||
if since < min_between_checks {
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
let check = get_url(url).boxed();
|
||||||
|
url_checks.push(check);
|
||||||
}
|
}
|
||||||
let check = get_url(url).boxed();
|
|
||||||
url_checks.push(check);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
for (event, _) in parser.into_offset_iter() {
|
for (event, _) in parser.into_offset_iter() {
|
||||||
|
@ -292,7 +291,7 @@ async fn main() -> Result<(), Error> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let results_keys = results.keys().cloned().collect::<BTreeSet<String>>();
|
let results_keys: BTreeSet<String> = results.keys().cloned().collect();
|
||||||
let old_links = results_keys.difference(&used);
|
let old_links = results_keys.difference(&used);
|
||||||
for link in old_links {
|
for link in old_links {
|
||||||
results.remove(link).unwrap();
|
results.remove(link).unwrap();
|
||||||
|
@ -301,7 +300,7 @@ async fn main() -> Result<(), Error> {
|
||||||
|
|
||||||
let mut not_written = 0;
|
let mut not_written = 0;
|
||||||
let mut last_written = Local::now();
|
let mut last_written = Local::now();
|
||||||
while url_checks.len() > 0 {
|
while !url_checks.is_empty() {
|
||||||
debug!("Waiting for {}", url_checks.len());
|
debug!("Waiting for {}", url_checks.len());
|
||||||
let ((url, res), _index, remaining) = select_all(url_checks).await;
|
let ((url, res), _index, remaining) = select_all(url_checks).await;
|
||||||
url_checks = remaining;
|
url_checks = remaining;
|
||||||
|
@ -351,7 +350,7 @@ async fn main() -> Result<(), Error> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fs::write("results/results.yml", serde_yaml::to_string(&results)?)?;
|
fs::write("results/results.yml", serde_yaml::to_string(&results)?)?;
|
||||||
println!("");
|
println!();
|
||||||
let mut failed: u32 = 0;
|
let mut failed: u32 = 0;
|
||||||
|
|
||||||
for (url, link) in results.iter() {
|
for (url, link) in results.iter() {
|
||||||
|
@ -386,8 +385,7 @@ async fn main() -> Result<(), Error> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if failed == 0 {
|
if failed == 0 {
|
||||||
println!("No errors!");
|
Ok(println!("No errors!"))
|
||||||
Ok(())
|
|
||||||
} else {
|
} else {
|
||||||
Err(format_err!("{} urls with errors", failed))
|
Err(format_err!("{} urls with errors", failed))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue