mirror of
				https://github.com/sharkdp/bat.git
				synced 2025-10-31 07:04:04 +00:00 
			
		
		
		
	Implement --file-name<name> option
- can specify filename to be displayed when printing. - useful for when piping data from STDIN Closes #654
This commit is contained in:
		| @@ -222,6 +222,7 @@ impl App { | ||||
|                     .transpose()? | ||||
|                     .unwrap_or_else(|| vec![LineRange { lower: 0, upper: 0 }]), | ||||
|             ), | ||||
|             filename: self.matches.value_of("file-name").or_else(|| None), | ||||
|         }) | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -93,6 +93,18 @@ pub fn build_app(interactive_output: bool) -> ClapApp<'static, 'static> { | ||||
|                      '--highlight-line 40:' highlights lines 40 to the end of the file" | ||||
|                 ), | ||||
|         ) | ||||
|         .arg( | ||||
|             Arg::with_name("file-name") | ||||
|                 .long("file-name") | ||||
|                 .takes_value(true) | ||||
|                 .number_of_values(1) | ||||
|                 .multiple(true) | ||||
|                 .value_name("name") | ||||
|                 .help("Specify the name to display for a file.") | ||||
|                 .long_help("Specify the name to display for a file. Useful when piping \ | ||||
|                             data to bat from STDIN when bat does not otherwise know \ | ||||
|                             the filename."), | ||||
|         ) | ||||
|         .arg( | ||||
|             Arg::with_name("tabs") | ||||
|                 .long("tabs") | ||||
|   | ||||
| @@ -129,4 +129,7 @@ pub struct Config<'a> { | ||||
|  | ||||
|     /// Lines to highlight | ||||
|     pub highlight_lines: LineRanges, | ||||
|  | ||||
|     /// Name of file to display when printing | ||||
|     pub filename: Option<&'a str>, | ||||
| } | ||||
|   | ||||
| @@ -231,7 +231,7 @@ impl<'a> Printer for InteractivePrinter<'a> { | ||||
|                     InputFile::Ordinary(filename) => { | ||||
|                         format!("file '{}'", filename.to_string_lossy()) | ||||
|                     } | ||||
|                     _ => "STDIN".into(), | ||||
|                     _ => self.config.filename.unwrap_or("STDIN").to_owned(), | ||||
|                 }; | ||||
|  | ||||
|                 writeln!( | ||||
| @@ -267,7 +267,10 @@ impl<'a> Printer for InteractivePrinter<'a> { | ||||
|  | ||||
|         let (prefix, name) = match file { | ||||
|             InputFile::Ordinary(filename) => ("File: ", filename.to_string_lossy()), | ||||
|             _ => ("", Cow::from("STDIN")), | ||||
|             _ => ( | ||||
|                 "File: ", | ||||
|                 Cow::from(self.config.filename.unwrap_or("STDIN").to_owned()), | ||||
|             ), | ||||
|         }; | ||||
|  | ||||
|         let mode = match self.content_type { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user