1
0
mirror of https://github.com/sharkdp/bat.git synced 2025-09-01 19:02:22 +01:00

Recognize files in $XDG_CONFIG_HOME/git/ and $HOME/.config/git/ better (#2067)

* git global config - lookup $XDG_CONFIG_HOME faithfully

* Use `bool::then`

* Cover both `$XDG_CONFIG_HOME` & `$HOME/.config`

* Remove unused import

* Global git config tests

* Added trailing newline

* Fix git config test

* Wrote to changelog

* Revert change of `Result::ok` to `Result::unwrap`

* Apply suggestions from code review

Co-authored-by: Martin Nordholts <enselic@gmail.com>

* Guard against empty `$HOME`

Co-authored-by: Martin Nordholts <enselic@gmail.com>
This commit is contained in:
cyqsimon
2022-02-27 00:01:00 +08:00
committed by GitHub
parent 36093dd3bc
commit 14ddda0a8b
5 changed files with 65 additions and 3 deletions

3
tests/examples/git/.config/git/config vendored Normal file
View File

@@ -0,0 +1,3 @@
[user]
email = foo@bar.net
name = foobar

3
tests/examples/git/.gitconfig vendored Normal file
View File

@@ -0,0 +1,3 @@
[user]
email = foo@bar.net
name = foobar

View File

@@ -1117,7 +1117,9 @@ Single Line
────────────────────────────────────────────────────────────────────────────────
",
)
.stderr("\x1b[33m[bat warning]\x1b[0m: Style 'rule' is a subset of style 'grid', 'rule' will not be visible.\n");
.stderr(
"\x1b[33m[bat warning]\x1b[0m: Style 'rule' is a subset of style 'grid', 'rule' will not be visible.\n",
);
}
#[cfg(target_os = "linux")]
@@ -1359,6 +1361,45 @@ fn ignored_suffix_arg() {
.stderr("");
}
#[test]
fn all_global_git_config_locations_syntax_mapping_work() {
let fake_home = Path::new(EXAMPLES_DIR).join("git").canonicalize().unwrap();
let expected = "\u{1b}[38;5;231m[\u{1b}[0m\u{1b}[38;5;149muser\u{1b}[0m\u{1b}[38;5;231m]\u{1b}[0m
\u{1b}[38;5;231m \u{1b}[0m\u{1b}[38;5;231memail\u{1b}[0m\u{1b}[38;5;231m \u{1b}[0m\u{1b}[38;5;203m=\u{1b}[0m\u{1b}[38;5;231m \u{1b}[0m\u{1b}[38;5;186mfoo@bar.net\u{1b}[0m
\u{1b}[38;5;231m \u{1b}[0m\u{1b}[38;5;231mname\u{1b}[0m\u{1b}[38;5;231m \u{1b}[0m\u{1b}[38;5;203m=\u{1b}[0m\u{1b}[38;5;231m \u{1b}[0m\u{1b}[38;5;186mfoobar\u{1b}[0m
";
bat()
.env("XDG_CONFIG_HOME", fake_home.join(".config").as_os_str())
.arg("-f")
.arg("-p")
.arg("git/.config/git/config")
.assert()
.success()
.stdout(expected)
.stderr("");
bat()
.env("HOME", fake_home.as_os_str())
.arg("-f")
.arg("-p")
.arg("git/.config/git/config")
.assert()
.success()
.stdout(expected)
.stderr("");
bat()
.env("HOME", fake_home.as_os_str())
.arg("-f")
.arg("-p")
.arg("git/.gitconfig")
.assert()
.success()
.stdout(expected)
.stderr("");
}
#[test]
fn acknowledgements() {
bat()