diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-01-11 17:07:04 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-01-11 20:06:23 +0300 |
commit | 7396aa945a6ea7720d5dc77414ff02a4cbef7dfa (patch) | |
tree | 9882f02947ea693da48bc5936ab5ab80314f304c /common | |
parent | d82cef5c53903dc52a353b3bd67d7ee11c55e4a4 (diff) |
Add hugo.Deps
Fixes #8949
Diffstat (limited to 'common')
-rw-r--r-- | common/hugo/hugo.go | 35 | ||||
-rw-r--r-- | common/hugo/hugo_test.go | 4 |
2 files changed, 36 insertions, 3 deletions
diff --git a/common/hugo/hugo.go b/common/hugo/hugo.go index d8f92e298..c8db18afe 100644 --- a/common/hugo/hugo.go +++ b/common/hugo/hugo.go @@ -21,6 +21,7 @@ import ( "runtime/debug" "sort" "strings" + "time" "github.com/gohugoio/hugo/hugofs/files" @@ -57,6 +58,8 @@ type Info struct { // This can also be set by the user. // It can be any string, but it will be all lower case. Environment string + + deps []*Dependency } // Version returns the current version as a comparable version string. @@ -77,8 +80,13 @@ func (i Info) IsExtended() bool { return IsExtended } +// Deps gets a list of dependencies for this Hugo build. +func (i Info) Deps() []*Dependency { + return i.deps +} + // NewInfo creates a new Hugo Info object. -func NewInfo(environment string) Info { +func NewInfo(environment string, deps []*Dependency) Info { if environment == "" { environment = EnvironmentProduction } @@ -86,6 +94,7 @@ func NewInfo(environment string) Info { CommitHash: commitHash, BuildDate: buildDate, Environment: environment, + deps: deps, } } @@ -156,3 +165,27 @@ func IsRunningAsTest() bool { } return false } + +// Dependency is a single dependency, which can be either a Hugo Module or a local theme. +type Dependency struct { + // Returns the path to this module. + // This will either be the module path, e.g. "github.com/gohugoio/myshortcodes", + // or the path below your /theme folder, e.g. "mytheme". + Path string + + // The module version. + Version string + + // Whether this dependency is vendored. + Vendor bool + + // Time version was created. + Time time.Time + + // In the dependency tree, this is the first module that defines this module + // as a dependency. + Owner *Dependency + + // Replaced by this dependency. + Replace *Dependency +} diff --git a/common/hugo/hugo_test.go b/common/hugo/hugo_test.go index 0631be62c..ff36cab7c 100644 --- a/common/hugo/hugo_test.go +++ b/common/hugo/hugo_test.go @@ -23,7 +23,7 @@ import ( func TestHugoInfo(t *testing.T) { c := qt.New(t) - hugoInfo := NewInfo("") + hugoInfo := NewInfo("", nil) c.Assert(hugoInfo.Version(), qt.Equals, CurrentVersion.Version()) c.Assert(fmt.Sprintf("%T", VersionString("")), qt.Equals, fmt.Sprintf("%T", hugoInfo.Version())) @@ -34,6 +34,6 @@ func TestHugoInfo(t *testing.T) { c.Assert(hugoInfo.IsProduction(), qt.Equals, true) c.Assert(hugoInfo.IsExtended(), qt.Equals, IsExtended) - devHugoInfo := NewInfo("development") + devHugoInfo := NewInfo("development", nil) c.Assert(devHugoInfo.IsProduction(), qt.Equals, false) } |