diff options
author | sharkdp <davidpeter@web.de> | 2018-09-12 21:53:41 +0200 |
---|---|---|
committer | sharkdp <davidpeter@web.de> | 2018-09-12 21:53:41 +0200 |
commit | e098eb43a28f55942f3185033ebe3e09d86198d7 (patch) | |
tree | c64988141fb0a391f7fb381587aaf77f83d4bb97 | |
parent | ea369ee17f287309f746503233ebc6fcfbdeba2e (diff) |
Do not show file header for directories
This also adds a better error message.
closes #292
-rw-r--r-- | src/controller.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/controller.rs b/src/controller.rs index 73eb8996..9881669f 100644 --- a/src/controller.rs +++ b/src/controller.rs @@ -53,7 +53,15 @@ impl<'b> Controller<'b> { { let reader: Box<BufRead> = match filename { InputFile::StdIn => Box::new(stdin.lock()), - InputFile::Ordinary(filename) => Box::new(BufReader::new(File::open(filename)?)), + InputFile::Ordinary(filename) => { + let file = File::open(filename)?; + + if file.metadata()?.is_dir() { + return Err(format!("'{}' is a directory.", filename).into()); + } + + Box::new(BufReader::new(file)) + } InputFile::ThemePreviewFile => Box::new(THEME_PREVIEW_FILE), }; |