Skip to content

Commit

Permalink
Replace deprecated 'failure' crate with 'anyhow'
Browse files Browse the repository at this point in the history
  • Loading branch information
dtolnay authored and Mark-Simulacrum committed Dec 17, 2023
1 parent 6dcae1a commit c2a5379
Show file tree
Hide file tree
Showing 12 changed files with 57 additions and 89 deletions.
75 changes: 22 additions & 53 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ authors = ["Alex Crichton <[email protected]>", "Pietro Albini <pietro@pietr
edition = '2018'

[dependencies]
anyhow = { version = "1", features = ["backtrace"] }
base64 = "0.13.0"
dialoguer = "0.10.1"
env_logger = { version = "0.9.0", default-features = false }
failure = "0.1"
indexmap = "1.0.2"
log = "0.4"
rayon = "1.5"
Expand Down
8 changes: 4 additions & 4 deletions src/check_synced.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ use log::{error, warn};
use rayon::prelude::*;
use std::collections::{HashMap, HashSet};

pub(crate) fn check(data: &Data) -> Result<(), failure::Error> {
pub(crate) fn check(data: &Data) -> anyhow::Result<()> {
check_github(data)?;
check_zulip(data)?;
Ok(())
}

fn check_zulip(data: &Data) -> Result<(), failure::Error> {
fn check_zulip(data: &Data) -> anyhow::Result<()> {
let zulip = ZulipApi::new();
zulip.require_auth()?;
let mut remote_groups = zulip
Expand Down Expand Up @@ -78,7 +78,7 @@ fn check_zulip(data: &Data) -> Result<(), failure::Error> {
Ok(())
}

pub(crate) fn check_github(data: &Data) -> Result<(), failure::Error> {
pub(crate) fn check_github(data: &Data) -> anyhow::Result<()> {
const BOT_TEAMS: &[&str] = &["bors", "bots", "rfcbot", "highfive"];
let github = GitHubApi::new();
let pending_invites = github.pending_org_invites()?;
Expand All @@ -90,7 +90,7 @@ pub(crate) fn check_github(data: &Data) -> Result<(), failure::Error> {
let members = github.team_members(team.id)?;
Ok((team.name.clone(), (team, members)))
})
.collect::<Result<HashMap<_, _>, failure::Error>>()?;
.collect::<anyhow::Result<HashMap<_, _>>>()?;

for team in data.teams() {
let local_teams = team.github_teams(data)?;
Expand Down
10 changes: 5 additions & 5 deletions src/data.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use crate::schema::{Config, List, Person, Repo, Team, ZulipGroup};
use failure::{bail, Error, ResultExt};
use anyhow::{bail, Context as _, Error};
use serde::Deserialize;
use std::collections::{HashMap, HashSet};
use std::ffi::OsStr;
Expand Down Expand Up @@ -65,9 +65,9 @@ impl Data {
F: Fn(&mut Self, &str, T) -> Result<(), Error>,
F: Clone,
{
for entry in std::fs::read_dir(&dir).with_context(|e| {
for entry in std::fs::read_dir(&dir).with_context(|| {
let dir = dir.as_ref().display();
format!("`load_dir` failed to read directory '{}': {}", dir, e)
format!("`load_dir` failed to read directory '{}'", dir)
})? {
let path = entry?.path();
if nested && path.is_dir() {
Expand Down Expand Up @@ -168,8 +168,8 @@ impl Data {

fn load_file<T: for<'de> Deserialize<'de>>(path: &Path) -> Result<T, Error> {
let content =
std::fs::read(path).with_context(|_| format!("failed to read {}", path.display()))?;
std::fs::read(path).with_context(|| format!("failed to read {}", path.display()))?;
let parsed = toml::from_slice(&content)
.with_context(|_| format!("failed to parse {}", path.display()))?;
.with_context(|| format!("failed to parse {}", path.display()))?;
Ok(parsed)
}
2 changes: 1 addition & 1 deletion src/github.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use failure::{bail, Error};
use anyhow::{bail, Error};
use reqwest::blocking::{Client, ClientBuilder, RequestBuilder};
use reqwest::header::{self, HeaderValue};
use reqwest::Method;
Expand Down
21 changes: 10 additions & 11 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const USER_AGENT: &str = "https://github.com/rust-lang/team ([email protected]
use data::Data;
use schema::{Email, Team, TeamKind};

use failure::{err_msg, Error};
use anyhow::{bail, format_err, Error};
use log::{error, info, warn};
use std::{collections::HashMap, path::PathBuf};
use structopt::StructOpt;
Expand Down Expand Up @@ -105,10 +105,7 @@ fn main() {
env.init();

if let Err(e) = run() {
error!("{}", e);
for e in e.iter_causes() {
error!("cause: {}", e);
}
error!("{:?}", e);
std::process::exit(1);
}
}
Expand Down Expand Up @@ -141,7 +138,7 @@ fn run() -> Result<(), Error> {
let github_id = user.id;

if data.person(&github_name).is_some() {
failure::bail!("person already in the repo: {}", github_name);
bail!("person already in the repo: {}", github_name);
}

let file = format!("people/{}.toml", github_name);
Expand Down Expand Up @@ -198,7 +195,7 @@ fn run() -> Result<(), Error> {
let github = github::GitHubApi::new();
let repo = match github.repo(&org, &name)? {
Some(r) => r,
None => failure::bail!("The repo '{}/{}' was not found on GitHub", org, name),
None => bail!("The repo '{}/{}' was not found on GitHub", org, name),
};
let mut teams = HashMap::new();
let mut bots = Vec::new();
Expand Down Expand Up @@ -263,7 +260,7 @@ fn run() -> Result<(), Error> {
} => {
let person = data
.person(github_username)
.ok_or_else(|| err_msg("unknown person"))?;
.ok_or_else(|| format_err!("unknown person"))?;

println!("-- {} --", person.name());
println!();
Expand Down Expand Up @@ -366,11 +363,13 @@ fn run() -> Result<(), Error> {
}

Cli::DumpTeam { ref name } => {
let team = data.team(name).ok_or_else(|| err_msg("unknown team"))?;
let team = data.team(name).ok_or_else(|| format_err!("unknown team"))?;
dump_team_members(team, &data, false, 0)?;
}
Cli::DumpList { ref name } => {
let list = data.list(name)?.ok_or_else(|| err_msg("unknown list"))?;
let list = data
.list(name)?
.ok_or_else(|| format_err!("unknown list"))?;
let mut emails = list.emails().iter().collect::<Vec<_>>();
emails.sort();
for email in emails {
Expand All @@ -397,7 +396,7 @@ fn run() -> Result<(), Error> {
}
Cli::DumpPermission { ref name } => {
if !crate::schema::Permissions::available(data.config()).contains(name) {
failure::bail!("unknown permission: {}", name);
bail!("unknown permission: {}", name);
}
let mut allowed = crate::permissions::allowed_people(&data, name)?
.into_iter()
Expand Down
2 changes: 1 addition & 1 deletion src/permissions.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use crate::data::Data;
use crate::schema::{Config, Person};
use failure::{bail, Error};
use anyhow::{bail, Error};
use std::collections::{HashMap, HashSet};

#[derive(serde_derive::Deserialize, Debug, Clone, Default)]
Expand Down
16 changes: 8 additions & 8 deletions src/schema.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use crate::data::Data;
pub(crate) use crate::permissions::Permissions;
use failure::{bail, err_msg, Error};
use anyhow::{bail, format_err, Error};
use std::collections::{HashMap, HashSet};

#[derive(serde_derive::Deserialize, Debug)]
Expand Down Expand Up @@ -235,11 +235,11 @@ impl Team {

for team in &self.people.included_teams {
let team = data.team(team).ok_or_else(|| {
err_msg(format!(
format_err!(
"team '{}' includes members from non-existent team '{}'",
self.name(),
team
))
)
})?;
members.extend(team.members(data)?);
}
Expand Down Expand Up @@ -319,14 +319,14 @@ impl Team {
for team in &raw_list.extra_teams {
let team = data
.team(team)
.ok_or_else(|| err_msg(format!("team {} is missing", team)))?;
.ok_or_else(|| format_err!("team {} is missing", team))?;
members.extend(team.members(data)?);
}

for member in members.iter() {
let member = data
.person(member)
.ok_or_else(|| err_msg(format!("member {} is missing", member)))?;
.ok_or_else(|| format_err!("member {} is missing", member))?;
if let Email::Present(email) = member.email() {
list.emails.push(email.to_string());
}
Expand Down Expand Up @@ -365,7 +365,7 @@ impl Team {
for team in &raw_group.extra_teams {
let team = data
.team(team)
.ok_or_else(|| err_msg(format!("team {} is missing", team)))?;
.ok_or_else(|| format_err!("team {} is missing", team))?;
members.extend(team.members(data)?);
}
for excluded in &raw_group.excluded_people {
Expand All @@ -376,7 +376,7 @@ impl Team {

for member in members.iter() {
let member = data.person(member).ok_or_else(|| {
err_msg(format!("{} does not have a person configuration", member))
format_err!("{} does not have a person configuration", member)
})?;
let member = match (member.github.clone(), member.zulip_id) {
(github, Some(zulip_id)) => ZulipGroupMember::MemberWithId { github, zulip_id },
Expand Down Expand Up @@ -411,7 +411,7 @@ impl Team {
for team in &github.extra_teams {
members.extend(
data.team(team)
.ok_or_else(|| failure::err_msg(format!("missing team {}", team)))?
.ok_or_else(|| format_err!("missing team {}", team))?
.members(data)?
.iter()
.filter_map(|name| data.person(name).map(|p| (p.github(), p.github_id()))),
Expand Down
Loading

0 comments on commit c2a5379

Please sign in to comment.