diff options
Diffstat (limited to 'hugolib/gitinfo.go')
-rw-r--r-- | hugolib/gitinfo.go | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/hugolib/gitinfo.go b/hugolib/gitinfo.go index f0c5dfa27..6b5261084 100644 --- a/hugolib/gitinfo.go +++ b/hugolib/gitinfo.go @@ -14,11 +14,13 @@ package hugolib import ( + "io" "path/filepath" "strings" "github.com/bep/gitmap" - "github.com/gohugoio/hugo/config" + "github.com/gohugoio/hugo/common/hexec" + "github.com/gohugoio/hugo/deps" "github.com/gohugoio/hugo/resources/page" "github.com/gohugoio/hugo/source" ) @@ -38,10 +40,24 @@ func (g *gitInfo) forPage(p page.Page) source.GitInfo { return source.NewGitInfo(*gi) } -func newGitInfo(conf config.AllProvider) (*gitInfo, error) { - workingDir := conf.BaseConfig().WorkingDir +func newGitInfo(d *deps.Deps) (*gitInfo, error) { + opts := gitmap.Options{ + Repository: d.Conf.BaseConfig().WorkingDir, + GetGitCommandFunc: func(stdout, stderr io.Writer, args ...string) (gitmap.Runner, error) { + var argsv []any + for _, arg := range args { + argsv = append(argsv, arg) + } + argsv = append( + argsv, + hexec.WithStdout(stdout), + hexec.WithStderr(stderr), + ) + return d.ExecHelper.New("git", argsv...) + }, + } - gitRepo, err := gitmap.Map(workingDir, "") + gitRepo, err := gitmap.Map(opts) if err != nil { return nil, err } |