difftreelog
refactor do not use try_blocks
in: trunk
2 files changed
cmds/fleet/src/cmds/build_systems.rsdiffbeforeafterboth71 datetime: String,71 datetime: String,72}72}7373async fn get_current_generation(host: &ConfigHost) -> Result<Generation> {74fn parse_generation_line(g: &str) -> Option<Generation> {74 let mut cmd = host.cmd("nix-env").await?;75 cmd.comparg("--profile", "/nix/var/nix/profiles/system")76 .arg("--list-generations");77 // Sudo is required due to --list-generations acquiring lock on the profile.78 let data = cmd.sudo().run_string().await?;79 let generations = data80 .split('\n')81 .map(|e| e.trim())82 .filter(|&l| !l.is_empty())83 .filter_map(|g| {84 let gen: Option<Generation> = try {85 let mut parts = g.split_whitespace();75 let mut parts = g.split_whitespace();86 let id = parts.next()?;76 let id = parts.next()?;87 let id: u32 = id.parse().ok()?;77 let id: u32 = id.parse().ok()?;100 if parts.next().is_some() {90 if parts.next().is_some() {101 warn!("unexpected text after generation: {g}");91 warn!("unexpected text after generation: {g}");102 }92 }103 Generation {93 Some(Generation {104 id,94 id,105 current,95 current,106 datetime: format!("{date} {time}"),96 datetime: format!("{date} {time}"),107 }97 })108 };98}109 if gen.is_none() {99110 warn!("bad generation: {g}")100async fn get_current_generation(host: &ConfigHost) -> Result<Generation> {111 }101 let mut cmd = host.cmd("nix-env").await?;112 gen102 cmd.comparg("--profile", "/nix/var/nix/profiles/system")113 })103 .arg("--list-generations");114 .collect::<Vec<_>>();104 // Sudo is required due to --list-generations acquiring lock on the profile.115 let current = generations105 let data = cmd.sudo().run_string().await?;116 .into_iter()106 let generations = data117 .filter(|g| g.current)107 .split('\n')118 .at_most_one()108 .map(|e| e.trim())119 .map_err(|_e| anyhow!("bad list-generations output"))?109 .filter(|&l| !l.is_empty())120 .ok_or_else(|| anyhow!("failed to find generation"))?;110 .filter_map(|g| {121 Ok(current)111 let gen = parse_generation_line(g);122}112 if gen.is_none() {113 warn!("bad generation: {g}");114 }115 gen116 })117 .collect::<Vec<_>>();118 let current = generations119 .into_iter()120 .filter(|g| g.current)121 .at_most_one()122 .map_err(|_e| anyhow!("bad list-generations output"))?123 .ok_or_else(|| anyhow!("failed to find generation"))?;124 Ok(current)125}123126124async fn deploy_task(127async fn deploy_task(125 action: DeployAction,128 action: DeployAction,cmds/fleet/src/main.rsdiffbeforeafterboth--- a/cmds/fleet/src/main.rs
+++ b/cmds/fleet/src/main.rs
@@ -1,5 +1,4 @@
#![recursion_limit = "512"]
-#![feature(try_blocks)]
pub(crate) mod cmds;
// pub(crate) mod command;