shithub: hugo

Download patch

ref: 6e30c10d09ec60e8df3b4c17e6ab7a5896245928
parent: f848dc92dbf65321ee3eff7ebbb9253e1cb3a512
author: bep <[email protected]>
date: Thu Mar 12 12:10:14 EDT 2015

Add deprecated logger

--- a/helpers/general.go
+++ b/helpers/general.go
@@ -20,6 +20,7 @@
 	"errors"
 	"fmt"
 	bp "github.com/spf13/hugo/bufferpool"
+	jww "github.com/spf13/jwalterweatherman"
 	"github.com/spf13/viper"
 	"io"
 	"net"
@@ -26,6 +27,7 @@
 	"path/filepath"
 	"reflect"
 	"strings"
+	"sync"
 )
 
 // Filepath separator defined by os.Separator.
@@ -104,6 +106,25 @@
 // ThemeSet checks whether a theme is in use or not.
 func ThemeSet() bool {
 	return viper.GetString("theme") != ""
+}
+
+// Avoid spamming the logs with errors
+var deprecatedLogs = struct {
+	sync.RWMutex
+	m map[string]bool
+}{m: make(map[string]bool)}
+
+func Deprecated(object, item, alternative string) {
+	deprecatedLogs.RLock()
+	logged := deprecatedLogs.m[object+item+alternative]
+	deprecatedLogs.RUnlock()
+	if logged {
+		return
+	}
+	deprecatedLogs.Lock()
+	jww.ERROR.Printf("%s's %s is deprecated and will be removed in Hugo 0.15. Use %s instead.", object, item, alternative)
+	deprecatedLogs.m[object+item+alternative] = true
+	deprecatedLogs.Unlock()
 }
 
 // SliceToLower goes through the source slice and lowers all values.