jesseduffield.lazygit/pkg/utils
Stefan Haller 8b049be31d Find the lazygit root directory by go.mod instead of .git
Running the tests in an exported source tarball fails with "must run in
lazy project folder or child folder". GetLazyRootDirectory searches the
working directory and its parents for a .git directory, and a tarball
doesn't have one. This has always affected the integration tests; since
34da956f5d a unit test calls the function too, so now even
`go test ./... -short` fails.

Search for the go.mod file that declares lazygit's module instead. It
ships in tarballs, and there is exactly one of it per source tree.

Put the function in our own pkg/utils rather than change lazycore's; the
criterion is specific to lazygit, and I don't feel like making a change
to lazycore.

Return an error rather than call log.Fatal, and report it from the two
callers that run under `go test`. In a test binary, log.Fatal exits
without attributing the failure to any test. That is the failure mode
34da956f5d set out to remove. The remaining callers are development
tools that have nothing useful to do without the root directory; they
keep exiting, now through MustFindLazygitRootDirectory.

Also stop the search at the root of the file system rather than at "/".
On Windows the old loop walks up to "C:\" and then spins there forever.
2026-09-09 09:27:44 +02:00
..
yaml_utils Rework the custom pager config (rename to diff renderer) 2026-07-31 08:42:51 +02:00
color.go Store TextStyle in Pipe struct as pointer 2025-04-29 14:57:15 +02:00
color_test.go Fix Decolorise to also strip hyperlinks 2024-08-24 10:36:01 +02:00
date.go Make UnixToDateSmart timezone-deterministic 2026-05-02 17:59:27 +02:00
date_test.go Make UnixToDateSmart timezone-deterministic 2026-05-02 17:59:27 +02:00
dummies.go Move NewDummyCommon to pkg/common 2025-05-06 09:43:26 +02:00
errors.go move OS commands into their own package 2020-09-29 20:48:49 +10:00
formatting.go Replace go-runewidth with uniseg 2025-12-23 16:49:16 +01:00
formatting_test.go Replace go-runewidth with uniseg 2025-12-23 16:49:16 +01:00
history_buffer.go chore: use errors.New to replace fmt.Errorf with no parameters. 2024-04-24 16:21:34 +08:00
history_buffer_test.go Add search history 2023-09-20 08:35:41 +03:00
io.go Fix ForEachLineInFile to not lose the last line if it doesn't end with a LF 2024-10-09 15:37:08 +02:00
io_test.go Fix ForEachLineInFile to not lose the last line if it doesn't end with a LF 2024-10-09 15:37:08 +02:00
lines.go Replace go-runewidth with uniseg 2025-12-23 16:49:16 +01:00
lines_test.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
once_writer.go add deadlock mutex package 2022-08-07 11:16:14 +10:00
once_writer_test.go Enable revive linter, and fix a bunch of warnings 2025-06-30 19:13:20 +02:00
project_root.go Find the lazygit root directory by go.mod instead of .git 2026-09-09 09:27:44 +02:00
project_root_test.go Find the lazygit root directory by go.mod instead of .git 2026-09-09 09:27:44 +02:00
rebase_todo.go Move dragged commits in one rebase 2026-07-31 08:37:28 +02:00
rebase_todo_test.go Move dragged commits in one rebase 2026-07-31 08:37:28 +02:00
regexp.go add FindNamedMatches function in utils 2021-12-26 16:48:23 +11:00
regexp_test.go add FindNamedMatches function in utils 2021-12-26 16:48:23 +11:00
search.go Enable intrange linter, and fix warnings 2025-06-30 18:30:11 +02:00
search_test.go Rename FuzzySearch to FilterStrings 2024-03-17 11:55:30 +01:00
slice.go Modernize all codes 2025-11-15 10:46:23 +01:00
slice_test.go Remove redundant variable dedeclarations 2024-05-19 16:38:21 +10:00
stack.go Make StringStack generic 2026-08-08 11:15:01 +02:00
string_pool.go Store Commit.Hash by pointer (kept in a pool of hashes) 2025-04-29 14:57:15 +02:00
template.go Modernize all codes 2025-11-15 10:46:23 +01:00
template_test.go fix: fix ReplacePlaceholderString 2023-01-18 20:56:22 +09:00
thread_safe_map.go use thread safe map 2022-10-02 20:57:44 -07:00
thread_safe_map_test.go Enable intrange linter, and fix warnings 2025-06-30 18:30:11 +02:00
utils.go Expand a leading ~ in worktree paths to the home directory 2026-07-03 18:53:05 +02:00
utils_test.go Expand a leading ~ in worktree paths to the home directory 2026-07-03 18:53:05 +02:00