URI: 
       common/hugo: Add hugo.IsServer and hugo.IsDevelopment - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit d1b4458536372a4f8b60395bf867702571169362
   DIR parent 274852bcf254230fae30bed4883049ec94462e85
  HTML Author: Joe Mooring <joe.mooring@veriphor.com>
       Date:   Fri, 29 Sep 2023 10:23:08 -0700
       
       common/hugo: Add hugo.IsServer and hugo.IsDevelopment
       
       And deprecate site.IsServer.
       
       Closes #11510
       
       Diffstat:
         M common/hugo/hugo.go                 |      13 +++++++++++++
         M common/hugo/hugo_test.go            |      13 +++++++++++--
         M docs/content/en/functions/hugo.md   |       8 +++++++-
         M docs/content/en/variables/site.md   |       3 ---
         M hugolib/site_new.go                 |       2 ++
         M resources/page/page_matcher_test.go |       5 +++++
         M resources/page/site.go              |       3 +++
       
       7 files changed, 41 insertions(+), 6 deletions(-)
       ---
   DIR diff --git a/common/hugo/hugo.go b/common/hugo/hugo.go
       @@ -78,10 +78,22 @@ func (i HugoInfo) Generator() template.HTML {
                return template.HTML(fmt.Sprintf(`<meta name="generator" content="Hugo %s">`, CurrentVersion.String()))
        }
        
       +// IsDevelopment reports whether the current running environment is "development".
       +func (i HugoInfo) IsDevelopment() bool {
       +        return i.Environment == EnvironmentDevelopment
       +}
       +
       +// IsProduction reports whether the current running environment is "production".
        func (i HugoInfo) IsProduction() bool {
                return i.Environment == EnvironmentProduction
        }
        
       +// IsServer reports whether the built-in server is running.
       +func (i HugoInfo) IsServer() bool {
       +        return i.conf.Running()
       +}
       +
       +// IsExtended reports whether the Hugo binary is the extended version.
        func (i HugoInfo) IsExtended() bool {
                return IsExtended
        }
       @@ -99,6 +111,7 @@ func (i HugoInfo) Deps() []*Dependency {
        // ConfigProvider represents the config options that are relevant for HugoInfo.
        type ConfigProvider interface {
                Environment() string
       +        Running() bool
                WorkingDir() string
        }
        
   DIR diff --git 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)
        
       -        conf := testConfig{environment: "production", workingDir: "/mywork"}
       +        conf := testConfig{environment: "production", workingDir: "/mywork", running: false}
                hugoInfo := NewInfo(conf, nil)
        
                c.Assert(hugoInfo.Version(), qt.Equals, CurrentVersion.Version())
       @@ -38,15 +38,20 @@ func TestHugoInfo(t *testing.T) {
                }
                c.Assert(hugoInfo.Environment, qt.Equals, "production")
                c.Assert(string(hugoInfo.Generator()), qt.Contains, fmt.Sprintf("Hugo %s", hugoInfo.Version()))
       +        c.Assert(hugoInfo.IsDevelopment(), qt.Equals, false)
                c.Assert(hugoInfo.IsProduction(), qt.Equals, true)
                c.Assert(hugoInfo.IsExtended(), qt.Equals, IsExtended)
       +        c.Assert(hugoInfo.IsServer(), qt.Equals, false)
        
       -        devHugoInfo := NewInfo(testConfig{environment: "development"}, nil)
       +        devHugoInfo := NewInfo(testConfig{environment: "development", running: true}, nil)
       +        c.Assert(devHugoInfo.IsDevelopment(), qt.Equals, true)
                c.Assert(devHugoInfo.IsProduction(), qt.Equals, false)
       +        c.Assert(devHugoInfo.IsServer(), qt.Equals, true)
        }
        
        type testConfig struct {
                environment string
       +        running     bool
                workingDir  string
        }
        
       @@ -54,6 +59,10 @@ func (c testConfig) Environment() string {
                return c.environment
        }
        
       +func (c testConfig) Running() bool {
       +        return c.running
       +}
       +
        func (c testConfig) WorkingDir() string {
                return c.workingDir
        }
   DIR diff --git a/docs/content/en/functions/hugo.md b/docs/content/en/functions/hugo.md
       @@ -31,11 +31,17 @@ relatedfuncs: []
        `hugo.GoVersion`
        : (`string`) The Go version used to compile the Hugo binary (e.g., `go1.20.4`). {{< new-in "0.101.0" >}}
        
       +`hugo.IsDevelopment`
       +: (`bool`) Returns `true` if `hugo.Environment` is "development".
       +
        `hugo.IsExtended`
        : (`bool`) Returns `true` if the Hugo binary is the extended version.
        
        `hugo.IsProduction`
       -: (`bool`) Returns `true` if `hugo.Environment` is set to the production environment.
       +: (`bool`) Returns `true` if `hugo.Environment` is "production".
       +
       +`hugo.IsServer`
       +: (`bool`) Returns `true` if the site is being served with Hugo's built-in server.
        
        `hugo.Version`
        : (`hugo.VersionString`) The current version of the Hugo binary (e.g., `0.112.1`).
   DIR diff --git a/docs/content/en/variables/site.md b/docs/content/en/variables/site.md
       @@ -47,9 +47,6 @@ All the methods below, e.g. `.Site.RegularPages` can also be reached via the glo
        .Site.IsMultiLingual
        : whether there are more than one language in this site. See [Multilingual](/content-management/multilingual/) for more information.
        
       -.Site.IsServer
       -: a boolean to indicate if the site is being served with Hugo's built-in server. See [`hugo server`](/commands/hugo_server/) for more information.
       -
        .Site.Language.Lang
        : the language code of the current locale (e.g., `en`).
        
   DIR diff --git a/hugolib/site_new.go b/hugolib/site_new.go
       @@ -356,7 +356,9 @@ func newHugoSitesNew(cfg deps.DepsCfg, d *deps.Deps, sites []*Site) (*HugoSites,
        }
        
        // Returns true if we're running in a server.
       +// Deprecated: use hugo.IsServer instead
        func (s *Site) IsServer() bool {
       +        helpers.Deprecated(".Site.IsServer", "Use hugo.IsServer instead.", false)
                return s.conf.Internal.Running
        }
        
   DIR diff --git a/resources/page/page_matcher_test.go b/resources/page/page_matcher_test.go
       @@ -159,6 +159,7 @@ func TestDecodeCascadeConfig(t *testing.T) {
        
        type testConfig struct {
                environment string
       +        running     bool
                workingDir  string
        }
        
       @@ -166,6 +167,10 @@ func (c testConfig) Environment() string {
                return c.environment
        }
        
       +func (c testConfig) Running() bool {
       +        return c.running
       +}
       +
        func (c testConfig) WorkingDir() string {
                return c.workingDir
        }
   DIR diff --git a/resources/page/site.go b/resources/page/site.go
       @@ -56,6 +56,7 @@ type Site interface {
                Home() Page
        
                // Returns true if we're running in a server.
       +        // Deprecated: use hugo.IsServer instead
                IsServer() bool
        
                // Returns the server port.
       @@ -211,6 +212,7 @@ func (s *siteWrapper) Home() Page {
                return s.s.Home()
        }
        
       +// Deprecated: use hugo.IsServer instead
        func (s *siteWrapper) IsServer() bool {
                return s.s.IsServer()
        }
       @@ -383,6 +385,7 @@ func (t testSite) GetIdentity() identity.Identity {
                return identity.KeyValueIdentity{Key: "site", Value: t.l.Lang}
        }
        
       +// Deprecated: use hugo.IsServer instead
        func (t testSite) IsServer() bool {
                return false
        }