difftreelog
refactor remove intermediate directory
in: trunk
1 file changed
cmds/install-secrets/src/main.rsdiffbeforeafterboth127 let data_str = from_utf8(&data).context("failed to read data to string")?;127 let data_str = from_utf8(&data).context("failed to read data to string")?;128 let data: Data = serde_json::from_str(data_str).context("failed to parse data")?;128 let data: Data = serde_json::from_str(data_str).context("failed to parse data")?;129129130 let tempdir =130 let tempdir = tempfile::tempdir_in("/run/").context("failed to create secrets tempdir")?;131 tempfile::tempdir_in("/run/secrets.d").context("failed to create secrets tempdir")?;132131133 let identity = age::ssh::Identity::from_buffer(132 let identity = age::ssh::Identity::from_buffer(134 &mut Cursor::new(133 &mut Cursor::new(152 bail!("one or more secrets failed");151 bail!("one or more secrets failed");153 }152 }154153155 if fs::metadata("/run/secrets.d/secrets.fleet")154 if fs::metadata("/run/secrets")156 .map(|m| m.is_dir())155 .map(|m| m.is_dir())157 .unwrap_or(false)156 .unwrap_or(false)158 {157 {161 None,160 None,162 tempdir.path(),161 tempdir.path(),163 None,162 None,164 "/run/secrets.d/secrets.fleet",163 "/run/secrets",165 RenameFlags::RENAME_EXCHANGE,164 RenameFlags::RENAME_EXCHANGE,166 )165 )167 .context("failed to exchange secret directories")?;166 .context("failed to exchange secret directories")?;171 } else {170 } else {172 // Link now171 // Link now173 let persisted = tempdir.into_path();172 let persisted = tempdir.into_path();174 fs::rename(&persisted, "/run/secrets.d/secrets.fleet")173 fs::rename(&persisted, "/run/secrets").context("failed to link secret directory")?;175 .context("failed to link secret directory")?;176 }174 }177 Ok(())175 Ok(())