Add deprecated logger
authorbep <bjorn.erik.pedersen@gmail.com>
Thu, 12 Mar 2015 15:10:14 +0000 (16:10 +0100)
committerbep <bjorn.erik.pedersen@gmail.com>
Thu, 12 Mar 2015 15:10:34 +0000 (16:10 +0100)
helpers/general.go

index 891e5b80f6cb42fdf51d497e57455823f1734a32..4219186ad93e0c1e7b5a556a72faa81f297f428d 100644 (file)
@@ -20,12 +20,14 @@ import (
        "errors"
        "fmt"
        bp "github.com/spf13/hugo/bufferpool"
+       jww "github.com/spf13/jwalterweatherman"
        "github.com/spf13/viper"
        "io"
        "net"
        "path/filepath"
        "reflect"
        "strings"
+       "sync"
 )
 
 // Filepath separator defined by os.Separator.
@@ -106,6 +108,25 @@ 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.
 func SliceToLower(s []string) []string {
        if s == nil {