aboutsummaryrefslogtreecommitdiffhomepage
path: root/hugolib/gitinfo.go
diff options
context:
space:
mode:
Diffstat (limited to 'hugolib/gitinfo.go')
-rw-r--r--hugolib/gitinfo.go24
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
}