Skip to content

Commit e48c5fe

Browse files
committed
admin::render_readmes: Extract file-not-found case of find_file_by_path
1 parent 3ec019e commit e48c5fe

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/admin/render_readmes.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -203,15 +203,17 @@ fn render_pkg_readme<R: Read>(mut archive: Archive<R>, pkg_name: &str) -> Option
203203

204204
let manifest: Manifest = {
205205
let path = format!("{}/Cargo.toml", pkg_name);
206-
let contents = find_file_by_path(&mut entries, Path::new(&path), pkg_name);
206+
let contents = find_file_by_path(&mut entries, Path::new(&path), pkg_name)
207+
.unwrap_or_else(|| panic!("[{}] couldn't open file: Cargo.toml", pkg_name));
207208
toml::from_str(&contents)
208209
.unwrap_or_else(|_| panic!("[{}] Syntax error in manifest file", pkg_name))
209210
};
210211

211212
let rendered = {
212213
let readme_path = manifest.package.readme.as_ref()?;
213214
let path = format!("{}/{}", pkg_name, readme_path);
214-
let contents = find_file_by_path(&mut entries, Path::new(&path), pkg_name);
215+
let contents = find_file_by_path(&mut entries, Path::new(&path), pkg_name)
216+
.unwrap_or_else(|| panic!("[{}] couldn't open file: {}", pkg_name, readme_path));
215217
text_to_html(
216218
&contents,
217219
readme_path,
@@ -237,7 +239,7 @@ fn find_file_by_path<R: Read>(
237239
entries: &mut tar::Entries<'_, R>,
238240
path: &Path,
239241
pkg_name: &str,
240-
) -> String {
242+
) -> Option<String> {
241243
let mut file = entries
242244
.find(|entry| match *entry {
243245
Err(_) => false,
@@ -248,14 +250,13 @@ fn find_file_by_path<R: Read>(
248250
};
249251
filepath == path
250252
}
251-
})
252-
.unwrap_or_else(|| panic!("[{}] couldn't open file: {}", pkg_name, path.display()))
253+
})?
253254
.unwrap_or_else(|_| panic!("[{}] file is not present: {}", pkg_name, path.display()));
254255

255256
let mut contents = String::new();
256257
file.read_to_string(&mut contents)
257258
.unwrap_or_else(|_| panic!("[{}] Couldn't read file contents", pkg_name));
258-
contents
259+
Some(contents)
259260
}
260261

261262
#[cfg(test)]

0 commit comments

Comments
 (0)