From 541f014d50507077006b117b1df69704e754cf51 Mon Sep 17 00:00:00 2001 From: Kyle Ondy Date: Mon, 22 Jun 2020 21:00:35 -0400 Subject: [PATCH 1/6] add peaceant's port of gruvbox themes This adds Martin Radimec's [1] port [2] of the gruvbox theme [3]. Brian Reilly (Briles) [4] has a pretty complete collection of gruvbox ports [5] but they are all in `sublime-color-scheme` which is not yet supported in bat, see #759 [6]. [1] https://github.com/peaceant [2] https://github.com/peaceant/gruvbox [3] https://github.com/morhetz/gruvbox [4] https://github.com/Briles [5] https://github.com/Briles/gruvbox [6] https://github.com/sharkdp/bat/issues/759 --- .gitmodules | 3 +++ CHANGELOG.md | 3 +++ assets/themes/gruvbox | 1 + 3 files changed, 7 insertions(+) create mode 160000 assets/themes/gruvbox diff --git a/.gitmodules b/.gitmodules index 6b1cff40..822e8283 100644 --- a/.gitmodules +++ b/.gitmodules @@ -185,3 +185,6 @@ [submodule "assets/syntaxes/02_Extra/AsciiDoc"] path = assets/syntaxes/02_Extra/AsciiDoc url = https://github.com/asciidoctor/sublimetext-asciidoc.git +[submodule "assets/themes/gruvbox"] + path = assets/themes/gruvbox + url = https://github.com/peaceant/gruvbox.git diff --git a/CHANGELOG.md b/CHANGELOG.md index bfd57e69..03340ab3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,9 @@ - Update AsciiDoc syntax, see #1034 (@rxt1077) ## New themes + +- Gruvbox, see #1069 (@kyleondy) + ## `bat` as a library - Add APIs to provide `Input` descriptions with `InputDescription` (@eth-p) diff --git a/assets/themes/gruvbox b/assets/themes/gruvbox new file mode 160000 index 00000000..e3db74d0 --- /dev/null +++ b/assets/themes/gruvbox @@ -0,0 +1 @@ +Subproject commit e3db74d0e5de7bc09cab76377723ccf6bcc64e8c From 38efdb5148ae2dfcacc721fef440f3faa982794c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2020 14:47:10 +0000 Subject: [PATCH 2/6] Bump serde_yaml from 0.8.12 to 0.8.13 Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml) from 0.8.12 to 0.8.13. - [Release notes](https://github.com/dtolnay/serde-yaml/releases) - [Commits](https://github.com/dtolnay/serde-yaml/compare/0.8.12...0.8.13) Signed-off-by: dependabot-preview[bot] --- Cargo.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 08e27065..379ba691 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -111,7 +111,7 @@ dependencies = [ "predicates 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_yaml 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_yaml 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)", "shell-words 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "syntect 4.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1035,7 +1035,7 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.8.12" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1458,7 +1458,7 @@ dependencies = [ "checksum serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)" = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3" "checksum serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)" = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e" "checksum serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)" = "da07b57ee2623368351e9a0488bb0b261322a15a6e0ae53e243cbdc0f4208da9" -"checksum serde_yaml 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)" = "16c7a592a1ec97c9c1c68d75b6e537dcbf60c7618e038e7841e00af1d9ccf0c4" +"checksum serde_yaml 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "ae3e2dd40a7cdc18ca80db804b7f461a39bb721160a85c9a1fa30134bf3c02a5" "checksum sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" "checksum shell-words 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6fa3938c99da4914afedd13bf3d79bcb6c277d1b2c398d23257a304d9e1b074" "checksum smallvec 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05720e22615919e4734f6a99ceae50d00226c3c5aca406e102ebc33298214e0a" From 2461d222127f6c7938b10068a1a12c5cd3d151a4 Mon Sep 17 00:00:00 2001 From: David Peter Date: Thu, 2 Jul 2020 07:17:57 +0200 Subject: [PATCH 3/6] Add new themes to unit test Branch: add_gruvbox_theme --- tests/assets.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/assets.rs b/tests/assets.rs index ab0f7686..1c8408b4 100644 --- a/tests/assets.rs +++ b/tests/assets.rs @@ -29,6 +29,9 @@ fn all_themes_are_present() { "ansi-dark", "ansi-light", "base16", + "gruvbox", + "gruvbox-light", + "gruvbox-white", "zenburn" ] ); From 3c5ce9f86cdb2a5e915d78770137a7d55a9c1dae Mon Sep 17 00:00:00 2001 From: "Evgeniy Andreev (gsomix)" Date: Sat, 20 Jun 2020 19:00:32 +0400 Subject: [PATCH 4/6] Enable non-printable chars for redirected output (#1061) --- CHANGELOG.md | 3 +++ src/controller.rs | 2 +- src/printer.rs | 22 ++++++++++++++++------ tests/examples/nonprintable.txt | Bin 0 -> 18 bytes tests/integration_tests.rs | 10 ++++++++++ 5 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 tests/examples/nonprintable.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index bfd57e69..3e07aa01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ - Added support for the `NO_COLOR` environment variable, see #1021 and #1031 (@eth-p) ## Bugfixes + +- Fixed non-printable characters display for redirected output, see #1061 (@gsomix) + ## Other ## Syntaxes diff --git a/src/controller.rs b/src/controller.rs index e11080f5..3fe44a72 100644 --- a/src/controller.rs +++ b/src/controller.rs @@ -113,7 +113,7 @@ impl<'b> Controller<'b> { }; let mut printer: Box = if self.config.loop_through { - Box::new(SimplePrinter::new()) + Box::new(SimplePrinter::new(&self.config)) } else { Box::new(InteractivePrinter::new( &self.config, diff --git a/src/printer.rs b/src/printer.rs index addc7972..7e369a6e 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -52,15 +52,17 @@ pub(crate) trait Printer { ) -> Result<()>; } -pub struct SimplePrinter; +pub struct SimplePrinter<'a> { + config: &'a Config<'a> +} -impl SimplePrinter { - pub fn new() -> Self { - SimplePrinter {} +impl<'a> SimplePrinter<'a> { + pub fn new(config: &'a Config) -> Self { + SimplePrinter { config } } } -impl Printer for SimplePrinter { +impl<'a> Printer for SimplePrinter<'a> { fn print_header( &mut self, _handle: &mut dyn Write, @@ -86,7 +88,15 @@ impl Printer for SimplePrinter { line_buffer: &[u8], ) -> Result<()> { if !out_of_range { - handle.write_all(line_buffer)?; + if self.config.show_nonprintable { + let line = replace_nonprintable(line_buffer, self.config.tab_width); + write!(handle, "{}", line)?; + if line_buffer.last() == Some(&b'\n') { + writeln!(handle)?; + } + } else { + handle.write_all(line_buffer)? + }; } Ok(()) } diff --git a/tests/examples/nonprintable.txt b/tests/examples/nonprintable.txt new file mode 100644 index 0000000000000000000000000000000000000000..00f60e332ed3f28208cd187079173dcc8184e4e1 GIT binary patch literal 18 Zcmc~u&B@7ED9 Date: Thu, 2 Jul 2020 07:37:00 +0200 Subject: [PATCH 5/6] Add updated themes.bin Branch: add_gruvbox_theme --- assets/themes.bin | Bin 14983 -> 16497 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/themes.bin b/assets/themes.bin index 9de983913d26f409d41929893b9deb1277eaba14..076b1a1313cdc08074ce82b4f856a606e6769ccc 100644 GIT binary patch literal 16497 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 Sj2N}+9+>MJO8;`^;Qs*XM_3^M literal 14983 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 Date: Thu, 2 Jul 2020 08:36:01 +0200 Subject: [PATCH 6/6] Remove outdated Docker installation method --- README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/README.md b/README.md index 23783c11..e52d5525 100644 --- a/README.md +++ b/README.md @@ -316,14 +316,6 @@ You can download prebuilt binaries from the [Release page](https://github.com/sh You will need to install the [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) package. -### Via Docker - -There is a [Docker image](https://hub.docker.com/r/danlynn/bat/) that you can use to run `bat` in a container: -```bash -docker pull danlynn/bat -alias bat='docker run -it --rm -e BAT_THEME -e BAT_STYLE -e BAT_TABS -v "$(pwd):/myapp" danlynn/bat' -``` - ### From binaries Check out the [Release page](https://github.com/sharkdp/bat/releases) for