summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsharkdp <davidpeter@web.de>2018-09-12 21:53:41 +0200
committersharkdp <davidpeter@web.de>2018-09-12 21:53:41 +0200
commite098eb43a28f55942f3185033ebe3e09d86198d7 (patch)
treec64988141fb0a391f7fb381587aaf77f83d4bb97
parentea369ee17f287309f746503233ebc6fcfbdeba2e (diff)
Do not show file header for directories
This also adds a better error message. closes #292
-rw-r--r--src/controller.rs10
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),
};