mirror of
https://github.com/sharkdp/bat.git
synced 2025-02-23 21:20:50 +01:00
Merge remote-tracking branch 'upstream/master' into feature-tabs
# Conflicts: # src/printer.rs
This commit is contained in:
commit
1807f9653c
@ -23,7 +23,13 @@ matrix:
|
|||||||
- TARGET=arm-unknown-linux-gnueabihf
|
- TARGET=arm-unknown-linux-gnueabihf
|
||||||
- CC_arm_unknown_linux_gnueabihf=/usr/bin/arm-linux-gnueabihf-gcc-4.8
|
- CC_arm_unknown_linux_gnueabihf=/usr/bin/arm-linux-gnueabihf-gcc-4.8
|
||||||
- CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc-4.8
|
- CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc-4.8
|
||||||
|
- os: linux
|
||||||
|
rust: stable
|
||||||
|
env:
|
||||||
|
- TARGET=aarch64-unknown-linux-gnu
|
||||||
|
- CC_aarch64-unknown-linux-gnu=/usr/bin/aarch64-linux-gnu-gcc-4.8
|
||||||
|
- CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc-4.8
|
||||||
|
|
||||||
# Minimum Rust supported channel.
|
# Minimum Rust supported channel.
|
||||||
- os: linux
|
- os: linux
|
||||||
rust: 1.26.0
|
rust: 1.26.0
|
||||||
|
24
README.md
24
README.md
@ -134,6 +134,8 @@ or install it with [scoop](https://scoop.sh/):
|
|||||||
scoop install bat
|
scoop install bat
|
||||||
```
|
```
|
||||||
|
|
||||||
|
[See below](#using-bat-on-windows) for notes.
|
||||||
|
|
||||||
### From binaries
|
### From binaries
|
||||||
|
|
||||||
Check out the [Release page](https://github.com/sharkdp/bat/releases) for
|
Check out the [Release page](https://github.com/sharkdp/bat/releases) for
|
||||||
@ -235,6 +237,28 @@ script as a wrapper, for example:
|
|||||||
less --tabs 4 -RF "$@"
|
less --tabs 4 -RF "$@"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Using `bat` on Windows
|
||||||
|
|
||||||
|
`bat` mostly works out-of-the-box on Windows, but a few features may need extra configuration.
|
||||||
|
|
||||||
|
### Paging
|
||||||
|
|
||||||
|
Windows only includes a very limited pager in the form of `more`. You can download a Windows binary
|
||||||
|
for `less` [from its homepage](http://www.greenwoodsoftware.com/less/download.html) or [through
|
||||||
|
Chocolatey](https://chocolatey.org/packages/Less). To use it, place the binary in a directory in
|
||||||
|
your `PATH` or [define an environment variable](#using-a-different-pager).
|
||||||
|
|
||||||
|
### Colours
|
||||||
|
|
||||||
|
Windows 10 natively supports colours in both `conhost.exe` (Command Prompt) and PowerShell since
|
||||||
|
[v1511](https://en.wikipedia.org/wiki/Windows_10_version_history#Version_1511_(November_Update)), as
|
||||||
|
well as in newer versions of bash. On earlier versions of Windows, you can use
|
||||||
|
[Cmder](http://cmder.net/), which includes [ConEmu](https://conemu.github.io/).
|
||||||
|
|
||||||
|
**Note:** The Git and MSYS versions of `less` do not correctly interpret colours on Windows. If you
|
||||||
|
don’t have any other pagers installed, you can disable paging entirely by passing `--paging=never`
|
||||||
|
or by setting `BAT_PAGER` to an empty string.
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
### Terminals & colors
|
### Terminals & colors
|
||||||
|
@ -19,6 +19,8 @@ pack() {
|
|||||||
|
|
||||||
if [[ $TARGET == "arm-unknown-linux-gnueabihf" ]]; then
|
if [[ $TARGET == "arm-unknown-linux-gnueabihf" ]]; then
|
||||||
gcc_prefix="arm-linux-gnueabihf-"
|
gcc_prefix="arm-linux-gnueabihf-"
|
||||||
|
elif [[ $TARGET == "aarch64-unknown-linux-gnu" ]]; then
|
||||||
|
gcc_prefix="aarch64-linux-gnu-"
|
||||||
else
|
else
|
||||||
gcc_prefix=""
|
gcc_prefix=""
|
||||||
fi
|
fi
|
||||||
@ -49,13 +51,24 @@ make_deb() {
|
|||||||
local version
|
local version
|
||||||
local dpkgname
|
local dpkgname
|
||||||
local conflictname
|
local conflictname
|
||||||
|
local gcc_prefix
|
||||||
|
|
||||||
case $TARGET in
|
case $TARGET in
|
||||||
x86_64*)
|
x86_64*)
|
||||||
architecture=amd64
|
architecture=amd64
|
||||||
|
gcc_prefix=""
|
||||||
;;
|
;;
|
||||||
i686*)
|
i686*)
|
||||||
architecture=i386
|
architecture=i386
|
||||||
|
gcc_prefix=""
|
||||||
|
;;
|
||||||
|
aarch64*)
|
||||||
|
architecture=arm64
|
||||||
|
gcc_prefix="aarch64-linux-gnu-"
|
||||||
|
;;
|
||||||
|
arm*hf)
|
||||||
|
architecture=armhf
|
||||||
|
gcc_prefix="arm-linux-gnueabihf-"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "make_deb: skipping target '${TARGET}'" >&2
|
echo "make_deb: skipping target '${TARGET}'" >&2
|
||||||
@ -75,7 +88,7 @@ make_deb() {
|
|||||||
|
|
||||||
# copy the main binary
|
# copy the main binary
|
||||||
install -Dm755 "target/$TARGET/release/$PROJECT_NAME" "$tempdir/usr/bin/$PROJECT_NAME"
|
install -Dm755 "target/$TARGET/release/$PROJECT_NAME" "$tempdir/usr/bin/$PROJECT_NAME"
|
||||||
strip "$tempdir/usr/bin/$PROJECT_NAME"
|
"${gcc_prefix}"strip "$tempdir/usr/bin/$PROJECT_NAME"
|
||||||
|
|
||||||
# manpage
|
# manpage
|
||||||
install -Dm644 "doc/$PROJECT_NAME.1" "$tempdir/usr/share/man/man1/$PROJECT_NAME.1"
|
install -Dm644 "doc/$PROJECT_NAME.1" "$tempdir/usr/share/man/man1/$PROJECT_NAME.1"
|
||||||
|
@ -27,3 +27,11 @@ if [[ $TARGET == arm-unknown-linux-gnueabihf ]]; then
|
|||||||
libc6-armhf-cross \
|
libc6-armhf-cross \
|
||||||
libc6-dev-armhf-cross
|
libc6-dev-armhf-cross
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# needed for cross-compiling for arm64
|
||||||
|
if [[ $TARGET == aarch64-unknown-linux-gnu ]]; then
|
||||||
|
sudo apt-get install -y \
|
||||||
|
gcc-4.8-aarch64-linux-gnu \
|
||||||
|
binutils-aarch64-linux-gnu \
|
||||||
|
gcc-aarch64-linux-gnu
|
||||||
|
fi
|
||||||
|
@ -6,7 +6,7 @@ set -ex
|
|||||||
cargo build --target "$TARGET" --verbose
|
cargo build --target "$TARGET" --verbose
|
||||||
|
|
||||||
# We cannot run arm executables on linux
|
# We cannot run arm executables on linux
|
||||||
if [[ $TARGET != arm-unknown-linux-gnueabihf ]]; then
|
if [[ $TARGET != arm-unknown-linux-gnueabihf ]] && [[ $TARGET != aarch64-unknown-linux-gnu ]]; then
|
||||||
cargo test --target "$TARGET" --verbose
|
cargo test --target "$TARGET" --verbose
|
||||||
|
|
||||||
# Run 'bat' on its own source code and the README
|
# Run 'bat' on its own source code and the README
|
||||||
|
@ -114,9 +114,13 @@ impl<'a> InteractivePrinter<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get the Git modifications
|
// Get the Git modifications
|
||||||
let line_changes = match file {
|
let line_changes = if config.output_components.changes() {
|
||||||
InputFile::Ordinary(filename) => get_git_diff(filename),
|
match file {
|
||||||
_ => None,
|
InputFile::Ordinary(filename) => get_git_diff(filename),
|
||||||
|
_ => None,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
None
|
||||||
};
|
};
|
||||||
|
|
||||||
// Determine the type of syntax for highlighting
|
// Determine the type of syntax for highlighting
|
||||||
@ -210,11 +214,8 @@ impl<'a> Printer for InteractivePrinter<'a> {
|
|||||||
line_buffer: &[u8],
|
line_buffer: &[u8],
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let line = String::from_utf8_lossy(&line_buffer).to_string();
|
let line = String::from_utf8_lossy(&line_buffer).to_string();
|
||||||
|
|
||||||
// Highlight.
|
|
||||||
let regions = self.highlighter.highlight(line.as_ref());
|
let regions = self.highlighter.highlight(line.as_ref());
|
||||||
|
|
||||||
// Print.
|
|
||||||
if out_of_range {
|
if out_of_range {
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
@ -251,6 +252,10 @@ impl<'a> Printer for InteractivePrinter<'a> {
|
|||||||
as_terminal_escaped(style, &*text, true_color, colored_output,)
|
as_terminal_escaped(style, &*text, true_color, colored_output,)
|
||||||
)?;
|
)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if line.bytes().next_back() != Some(b'\n') {
|
||||||
|
write!(handle, "\n")?;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
for &(style, region) in regions.iter() {
|
for &(style, region) in regions.iter() {
|
||||||
let mut ansi_iterator = AnsiCodeIterator::new(region);
|
let mut ansi_iterator = AnsiCodeIterator::new(region);
|
||||||
|
Loading…
Reference in New Issue
Block a user