Skip to content

Commit 7715531

Browse files
authored
Merge pull request #693 from cgwalters/more-fs-utf8
install: Use some fs_utf8 bits
2 parents c925bb5 + 897b579 commit 7715531

File tree

1 file changed

+7
-12
lines changed

1 file changed

+7
-12
lines changed

lib/src/install.rs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ use camino::Utf8Path;
2525
use camino::Utf8PathBuf;
2626
use cap_std::fs::{Dir, MetadataExt};
2727
use cap_std_ext::cap_std;
28+
use cap_std_ext::cap_std::fs_utf8::DirEntry as DirEntryUtf8;
2829
use cap_std_ext::prelude::CapStdExtDirExt;
2930
use chrono::prelude::*;
3031
use clap::ValueEnum;
@@ -1343,27 +1344,21 @@ pub(crate) async fn install_to_disk(mut opts: InstallToDiskOpts) -> Result<()> {
13431344
#[context("Verifying empty rootfs")]
13441345
fn require_empty_rootdir(rootfs_fd: &Dir) -> Result<()> {
13451346
for e in rootfs_fd.entries()? {
1346-
let e = e?;
1347-
let name = e.file_name();
1348-
let name = name
1349-
.to_str()
1350-
.ok_or_else(|| anyhow!("Invalid non-UTF8 filename: {name:?}"))?;
1347+
let e = DirEntryUtf8::from_cap_std(e?);
1348+
let name = e.file_name()?;
13511349
if name == LOST_AND_FOUND {
13521350
continue;
13531351
}
13541352
// There must be a boot directory (that is empty)
13551353
if name == BOOT {
13561354
let mut entries = rootfs_fd.read_dir(BOOT)?;
13571355
if let Some(e) = entries.next() {
1358-
let e = e?;
1359-
let name = e.file_name();
1360-
let name = name
1361-
.to_str()
1362-
.ok_or_else(|| anyhow!("Invalid non-UTF8 filename: {name:?}"))?;
1363-
if matches!(name, LOST_AND_FOUND | crate::bootloader::EFI_DIR) {
1356+
let e = DirEntryUtf8::from_cap_std(e?);
1357+
let name = e.file_name()?;
1358+
if matches!(name.as_str(), LOST_AND_FOUND | crate::bootloader::EFI_DIR) {
13641359
continue;
13651360
}
1366-
anyhow::bail!("Non-empty boot directory, found {name:?}");
1361+
anyhow::bail!("Non-empty boot directory, found {name}");
13671362
}
13681363
} else {
13691364
anyhow::bail!("Non-empty root filesystem; found {name:?}");

0 commit comments

Comments
 (0)