diff --git a/cache/filecache/filecache.go b/cache/filecache/filecache.go index 37870dd5f..c586f9a51 100644 --- a/cache/filecache/filecache.go +++ b/cache/filecache/filecache.go @@ -158,7 +158,6 @@ func (c *Cache) ReadOrCreate(id string, err = create(info, f) return - } // GetOrCreate tries to get the file with the given id from cache. If not found or expired, create will @@ -220,7 +219,6 @@ func (c *Cache) GetOrCreateBytes(id string, create func() ([]byte, error)) (Item return info, nil, err } return info, b, nil - } // GetBytes gets the file content with the given id from the cahce, nil if none found. @@ -276,7 +274,6 @@ func (c *Cache) getOrRemove(id string) hugio.ReadSeekCloser { } f, err := c.Fs.Open(id) - if err != nil { return nil } @@ -299,7 +296,6 @@ func (c *Cache) getString(id string) string { defer c.nlocker.Unlock(id) f, err := c.Fs.Open(id) - if err != nil { return "" } @@ -307,7 +303,6 @@ func (c *Cache) getString(id string) string { b, _ := ioutil.ReadAll(f) return string(b) - } // Caches is a named set of caches. diff --git a/cache/filecache/filecache_config_test.go b/cache/filecache/filecache_config_test.go index 9f80a4f90..cd1d2c82a 100644 --- a/cache/filecache/filecache_config_test.go +++ b/cache/filecache/filecache_config_test.go @@ -69,7 +69,6 @@ dir = "/path/to/c3" c3 := decoded["images"] c.Assert(c3.MaxAge, qt.Equals, time.Duration(-1)) c.Assert(c3.Dir, qt.Equals, filepath.FromSlash("/path/to/c3/filecache/images")) - } func TestDecodeConfigIgnoreCache(t *testing.T) { @@ -110,7 +109,6 @@ dir = "/path/to/c3" for _, v := range decoded { c.Assert(v.MaxAge, qt.Equals, time.Duration(0)) } - } func TestDecodeConfigDefault(t *testing.T) { @@ -178,7 +176,6 @@ dir = "/" _, err = DecodeConfig(fs, cfg) c.Assert(err, qt.Not(qt.IsNil)) - } func newTestConfig() *viper.Viper { diff --git a/cache/filecache/filecache_pruner.go b/cache/filecache/filecache_pruner.go index b77f5331b..db1875701 100644 --- a/cache/filecache/filecache_pruner.go +++ b/cache/filecache/filecache_pruner.go @@ -110,7 +110,6 @@ func (c *Cache) Prune(force bool) (int, error) { } func (c *Cache) pruneRootDir(force bool) (int, error) { - info, err := c.Fs.Stat(c.pruneAllRootDir) if err != nil { if os.IsNotExist(err) { @@ -124,5 +123,4 @@ func (c *Cache) pruneRootDir(force bool) (int, error) { } return hugofs.MakeReadableAndRemoveAllModulePkgDir(c.Fs, c.pruneAllRootDir) - } diff --git a/cache/filecache/filecache_pruner_test.go b/cache/filecache/filecache_pruner_test.go index 48bce723e..46e1317ce 100644 --- a/cache/filecache/filecache_pruner_test.go +++ b/cache/filecache/filecache_pruner_test.go @@ -107,5 +107,4 @@ dir = ":resourceDir/_gen" } } - } diff --git a/cache/filecache/filecache_test.go b/cache/filecache/filecache_test.go index 00b4e5573..6a051a264 100644 --- a/cache/filecache/filecache_test.go +++ b/cache/filecache/filecache_test.go @@ -183,7 +183,6 @@ dir = ":cacheDir/c" c.Assert(string(b), qt.Equals, "Hugo is great!") } - } func TestFileCacheConcurrent(t *testing.T) { @@ -253,7 +252,6 @@ func TestFileCacheReadOrCreateErrorInRead(t *testing.T) { var result string rf := func(failLevel int) func(info ItemInfo, r io.ReadSeeker) error { - return func(info ItemInfo, r io.ReadSeeker) error { if failLevel > 0 { if failLevel > 1 { @@ -347,5 +345,4 @@ func newPathsSpec(t *testing.T, fs afero.Fs, configStr string) *helpers.PathSpec p, err := helpers.NewPathSpec(hugofs.NewFrom(fs, cfg), cfg, nil) c.Assert(err, qt.IsNil) return p - } diff --git a/cache/namedmemcache/named_cache.go b/cache/namedmemcache/named_cache.go index d8c229a01..d67bcc28a 100644 --- a/cache/namedmemcache/named_cache.go +++ b/cache/namedmemcache/named_cache.go @@ -49,7 +49,6 @@ func (c *Cache) Clear() { c.cache = make(map[string]cacheEntry) c.nlocker = locker.NewLocker() - } // GetOrCreate tries to get the value with the given cache key, if not found diff --git a/codegen/methods.go b/codegen/methods.go index ed8dba923..38477e333 100644 --- a/codegen/methods.go +++ b/codegen/methods.go @@ -58,7 +58,7 @@ func (c *Inspector) MethodsFromTypes(include []reflect.Type, exclude []reflect.T var methods Methods - var excludes = make(map[string]bool) + excludes := make(map[string]bool) if len(exclude) > 0 { for _, m := range c.MethodsFromTypes(exclude, nil) { @@ -99,11 +99,9 @@ func (c *Inspector) MethodsFromTypes(include []reflect.Type, exclude []reflect.T name = pkgPrefix + name return name, pkg - } for _, t := range include { - for i := 0; i < t.NumMethod(); i++ { m := t.Method(i) @@ -153,7 +151,6 @@ func (c *Inspector) MethodsFromTypes(include []reflect.Type, exclude []reflect.T methods = append(methods, method) } - } sort.SliceStable(methods, func(i, j int) bool { @@ -167,16 +164,13 @@ func (c *Inspector) MethodsFromTypes(include []reflect.Type, exclude []reflect.T } return wi < wj - }) return methods - } func (c *Inspector) parseSource() { c.init.Do(func() { - if !strings.Contains(c.ProjectRootDir, "hugo") { panic("dir must be set to the Hugo root") } @@ -200,7 +194,6 @@ func (c *Inspector) parseSource() { filenames = append(filenames, path) return nil - }) for _, filename := range filenames { @@ -230,7 +223,6 @@ func (c *Inspector) parseSource() { c.methodWeight[iface] = weights } } - } return true }) @@ -247,7 +239,6 @@ func (c *Inspector) parseSource() { } } } - }) } @@ -385,7 +376,7 @@ func (m Methods) ToMarshalJSON(receiver, pkgPath string, excludes ...string) (st fmt.Fprintf(&sb, "func Marshal%sToJSON(%s %s) ([]byte, error) {\n", what, r, receiver) var methods Methods - var excludeRes = make([]*regexp.Regexp, len(excludes)) + excludeRes := make([]*regexp.Regexp, len(excludes)) for i, exclude := range excludes { excludeRes[i] = regexp.MustCompile(exclude) @@ -450,7 +441,6 @@ func (m Methods) ToMarshalJSON(receiver, pkgPath string, excludes ...string) (st } return sb.String(), pkgImports - } func collectMethodsRecursive(pkg string, f []*ast.Field) []string { @@ -481,7 +471,6 @@ func collectMethodsRecursive(pkg string, f []*ast.Field) []string { } return methodNames - } func firstToLower(name string) string { @@ -544,5 +533,4 @@ func varName(name string) string { } return name - } diff --git a/codegen/methods_test.go b/codegen/methods_test.go index 77399f4e4..66000f4e9 100644 --- a/codegen/methods_test.go +++ b/codegen/methods_test.go @@ -25,7 +25,6 @@ import ( ) func TestMethods(t *testing.T) { - var ( zeroIE = reflect.TypeOf((*IEmbed)(nil)).Elem() zeroIEOnly = reflect.TypeOf((*IEOnly)(nil)).Elem() @@ -58,7 +57,6 @@ func TestMethods(t *testing.T) { methodsStr := fmt.Sprint(methods) c.Assert(methodsStr, qt.Contains, "MethodEmbed3(arg0 string) string") - }) t.Run("ToMarshalJSON", func(t *testing.T) { @@ -76,9 +74,7 @@ func TestMethods(t *testing.T) { c.Assert(pkg, qt.Contains, "encoding/json") fmt.Println(pkg) - }) - } type I interface { diff --git a/commands/check.go b/commands/check.go index f36f23969..f9be84852 100644 --- a/commands/check.go +++ b/commands/check.go @@ -26,9 +26,10 @@ type checkCmd struct { } func newCheckCmd() *checkCmd { - return &checkCmd{baseCmd: &baseCmd{cmd: &cobra.Command{ - Use: "check", - Short: "Contains some verification checks", - }, + return &checkCmd{baseCmd: &baseCmd{ + cmd: &cobra.Command{ + Use: "check", + Short: "Contains some verification checks", + }, }} } diff --git a/commands/check_darwin.go b/commands/check_darwin.go index 9291be84c..ac542916d 100644 --- a/commands/check_darwin.go +++ b/commands/check_darwin.go @@ -24,10 +24,11 @@ type checkCmd struct { } func newCheckCmd() *checkCmd { - cc := &checkCmd{baseCmd: &baseCmd{cmd: &cobra.Command{ - Use: "check", - Short: "Contains some verification checks", - }, + cc := &checkCmd{baseCmd: &baseCmd{ + cmd: &cobra.Command{ + Use: "check", + Short: "Contains some verification checks", + }, }} cc.cmd.AddCommand(newLimitCmd().getCommand()) diff --git a/commands/commandeer.go b/commands/commandeer.go index e0eae4a66..024651aad 100644 --- a/commands/commandeer.go +++ b/commands/commandeer.go @@ -16,24 +16,22 @@ package commands import ( "bytes" "errors" + "io/ioutil" + "os" + "path/filepath" + "regexp" "sync" + "time" hconfig "github.com/gohugoio/hugo/config" "golang.org/x/sync/semaphore" - "io/ioutil" - "github.com/gohugoio/hugo/common/herrors" "github.com/gohugoio/hugo/common/hugo" jww "github.com/spf13/jwalterweatherman" - "os" - "path/filepath" - "regexp" - "time" - "github.com/gohugoio/hugo/common/loggers" "github.com/gohugoio/hugo/config" @@ -156,7 +154,6 @@ func (c *commandeer) initFs(fs *hugofs.Fs) error { } func newCommandeer(mustHaveConfigFile, running bool, h *hugoBuilderCommon, f flagsToConfigHandler, cfgInit func(c *commandeer) error, subCmdVs ...*cobra.Command) (*commandeer, error) { - var rebuildDebouncer func(f func()) if running { // The time value used is tested with mass content replacements in a fairly big Hugo site. @@ -248,7 +245,6 @@ func (f *fileChangeDetector) PrepareNew() { } func (c *commandeer) loadConfig(mustHaveConfigFile, running bool) error { - if c.DepsCfg == nil { c.DepsCfg = &deps.DepsCfg{} } @@ -277,7 +273,6 @@ func (c *commandeer) loadConfig(mustHaveConfigFile, running bool) error { environment := c.h.getEnvironment(running) doWithConfig := func(cfg config.Provider) error { - if c.ftch != nil { c.ftch.flagsToConfig(cfg) } @@ -309,7 +304,8 @@ func (c *commandeer) loadConfig(mustHaveConfigFile, running bool) error { Filename: c.h.cfgFile, AbsConfigDir: c.h.getConfigDir(dir), Environ: os.Environ(), - Environment: environment}, + Environment: environment, + }, cfgSetAndInit, doWithConfig) @@ -389,7 +385,7 @@ func (c *commandeer) loadConfig(mustHaveConfigFile, running bool) error { } // To debug hard-to-find path issues. - //fs.Destination = hugofs.NewStacktracerFs(fs.Destination, `fr/fr`) + // fs.Destination = hugofs.NewStacktracerFs(fs.Destination, `fr/fr`) err = c.initFs(fs) if err != nil { @@ -402,7 +398,6 @@ func (c *commandeer) loadConfig(mustHaveConfigFile, running bool) error { h, err = hugolib.NewHugoSites(*c.DepsCfg) c.hugoSites = h close(c.created) - }) if err != nil { @@ -418,5 +413,4 @@ func (c *commandeer) loadConfig(mustHaveConfigFile, running bool) error { cfg.Logger.Infoln("Using config file:", config.ConfigFileUsed()) return nil - } diff --git a/commands/commands.go b/commands/commands.go index ce5f0ff7d..1135dc01a 100644 --- a/commands/commands.go +++ b/commands/commands.go @@ -88,6 +88,7 @@ var _ commandsBuilderGetter = (*baseBuilderCmd)(nil) type commandsBuilderGetter interface { getCommandsBuilder() *commandsBuilder } + type baseBuilderCmd struct { *baseCmd *commandsBuilder @@ -138,7 +139,6 @@ func (c *nilCommand) getCommand() *cobra.Command { } func (c *nilCommand) flagsToConfig(cfg config.Provider) { - } func (b *commandsBuilder) newHugoCmd() *hugoCmd { diff --git a/commands/commands_test.go b/commands/commands_test.go index 22e996853..0b1543169 100644 --- a/commands/commands_test.go +++ b/commands/commands_test.go @@ -35,7 +35,6 @@ import ( ) func TestExecute(t *testing.T) { - c := qt.New(t) createSite := func(c *qt.C) (string, func()) { @@ -124,7 +123,6 @@ func TestExecute(t *testing.T) { c.Assert(config, qt.Contains, "baseURL = \"http://example.org/\"") checkNewSiteInited(c, siteDir) }) - } func checkNewSiteInited(c *qt.C, basepath string) { @@ -185,7 +183,8 @@ func TestFlags(t *testing.T) { }, { name: "Persistent flags", - args: []string{"server", + args: []string{ + "server", "--config=myconfig.toml", "--configDir=myconfigdir", "--contentDir=mycontent", @@ -235,12 +234,12 @@ func TestFlags(t *testing.T) { // The flag is named i18n-warnings c.Assert(cfg.GetBool("logI18nWarnings"), qt.Equals, true) - - }}} + }, + }, + } for _, test := range tests { c.Run(test.name, func(c *qt.C) { - b := newCommandsBuilder() root := b.addAll().build() @@ -257,11 +256,9 @@ func TestFlags(t *testing.T) { test.check(c, b.commands[0].(*serverCmd)) }) } - } func TestCommandsExecute(t *testing.T) { - c := qt.New(t) dir, clean, err := createSimpleTestSite(t, testSiteConfig{}) @@ -330,7 +327,6 @@ func TestCommandsExecute(t *testing.T) { } } - } type testSiteConfig struct { @@ -399,7 +395,6 @@ Environment: {{ hugo.Environment }} `) return d, clean, nil - } func writeFile(t *testing.T, filename, content string) { diff --git a/commands/convert.go b/commands/convert.go index d8976f7ea..3047add0b 100644 --- a/commands/convert.go +++ b/commands/convert.go @@ -16,6 +16,7 @@ package commands import ( "bytes" "fmt" + "path/filepath" "strings" "time" @@ -34,14 +35,10 @@ import ( "github.com/gohugoio/hugo/hugolib" - "path/filepath" - "github.com/spf13/cobra" ) -var ( - _ cmder = (*convertCmd)(nil) -) +var _ cmder = (*convertCmd)(nil) type convertCmd struct { outputDir string diff --git a/commands/env.go b/commands/env.go index 76c16b93b..975c3bd0a 100644 --- a/commands/env.go +++ b/commands/env.go @@ -27,18 +27,19 @@ type envCmd struct { } func newEnvCmd() *envCmd { - return &envCmd{baseCmd: newBaseCmd(&cobra.Command{ - Use: "env", - Short: "Print Hugo version and environment info", - Long: `Print Hugo version and environment info. This is useful in Hugo bug reports.`, - RunE: func(cmd *cobra.Command, args []string) error { - printHugoVersion() - jww.FEEDBACK.Printf("GOOS=%q\n", runtime.GOOS) - jww.FEEDBACK.Printf("GOARCH=%q\n", runtime.GOARCH) - jww.FEEDBACK.Printf("GOVERSION=%q\n", runtime.Version()) + return &envCmd{ + baseCmd: newBaseCmd(&cobra.Command{ + Use: "env", + Short: "Print Hugo version and environment info", + Long: `Print Hugo version and environment info. This is useful in Hugo bug reports.`, + RunE: func(cmd *cobra.Command, args []string) error { + printHugoVersion() + jww.FEEDBACK.Printf("GOOS=%q\n", runtime.GOOS) + jww.FEEDBACK.Printf("GOARCH=%q\n", runtime.GOARCH) + jww.FEEDBACK.Printf("GOVERSION=%q\n", runtime.Version()) - return nil - }, - }), + return nil + }, + }), } } diff --git a/commands/genautocomplete.go b/commands/genautocomplete.go index b0b98abb4..e8d9890cf 100644 --- a/commands/genautocomplete.go +++ b/commands/genautocomplete.go @@ -59,7 +59,6 @@ or just source them in directly: } err := cmd.Root().GenBashCompletionFile(cc.autocompleteTarget) - if err != nil { return err } diff --git a/commands/genchromastyles.go b/commands/genchromastyles.go index 6d54b6ab4..53fb2be6a 100644 --- a/commands/genchromastyles.go +++ b/commands/genchromastyles.go @@ -22,9 +22,7 @@ import ( "github.com/spf13/cobra" ) -var ( - _ cmder = (*genChromaStyles)(nil) -) +var _ cmder = (*genChromaStyles)(nil) type genChromaStyles struct { style string diff --git a/commands/gendocshelper.go b/commands/gendocshelper.go index 68ac035ee..34d45154f 100644 --- a/commands/gendocshelper.go +++ b/commands/gendocshelper.go @@ -23,9 +23,7 @@ import ( "github.com/spf13/cobra" ) -var ( - _ cmder = (*genDocsHelper)(nil) -) +var _ cmder = (*genDocsHelper)(nil) type genDocsHelper struct { target string @@ -70,5 +68,4 @@ func (g *genDocsHelper) generate() error { fmt.Println("Done!") return nil - } diff --git a/commands/hugo.go b/commands/hugo.go index 58f33b775..b850f7e65 100644 --- a/commands/hugo.go +++ b/commands/hugo.go @@ -19,10 +19,16 @@ import ( "context" "fmt" "io/ioutil" + "os" "os/signal" + "path/filepath" + "runtime" "runtime/pprof" "runtime/trace" + "strings" "sync/atomic" + "syscall" + "time" "github.com/gohugoio/hugo/hugofs" @@ -34,18 +40,10 @@ import ( "github.com/gohugoio/hugo/common/loggers" "github.com/gohugoio/hugo/common/terminal" - "syscall" - "github.com/gohugoio/hugo/hugolib/filesystems" "golang.org/x/sync/errgroup" - "os" - "path/filepath" - "runtime" - "strings" - "time" - "github.com/gohugoio/hugo/config" flag "github.com/spf13/pflag" @@ -82,7 +80,6 @@ func (r Response) IsUserError() bool { // Execute adds all child commands to the root command HugoCmd and sets flags appropriately. // The args are usually filled with os.Args[1:]. func Execute(args []string) Response { - hugoCmd := newCommandsBuilder().addAll().build() cmd := hugoCmd.getCommand() cmd.SetArgs(args) @@ -120,14 +117,12 @@ func initializeConfig(mustHaveConfigFile, running bool, h *hugoBuilderCommon, f flagsToConfigHandler, cfgInit func(c *commandeer) error) (*commandeer, error) { - c, err := newCommandeer(mustHaveConfigFile, running, h, f, cfgInit) if err != nil { return nil, err } return c, nil - } func (c *commandeer) createLogger(cfg config.Provider, running bool) (loggers.Logger, error) { @@ -246,7 +241,6 @@ func initializeFlags(cmd *cobra.Command, cfg config.Provider) { setValueFromFlag(cmd.Flags(), "destination", cfg, "publishDir", false) setValueFromFlag(cmd.Flags(), "i18n-warnings", cfg, "logI18nWarnings", false) setValueFromFlag(cmd.Flags(), "path-warnings", cfg, "logPathWarnings", false) - } func setValueFromFlag(flags *flag.FlagSet, key string, cfg config.Provider, targetKey string, force bool) { @@ -282,7 +276,6 @@ func isTerminal() bool { } func (c *commandeer) fullBuild() error { - var ( g errgroup.Group langCount map[string]uint64 @@ -298,7 +291,6 @@ func (c *commandeer) fullBuild() error { } copyStaticFunc := func() error { - cnt, err := c.copyStatic() if err != nil { return errors.Wrap(err, "Error copying static files") @@ -346,7 +338,6 @@ func (c *commandeer) fullBuild() error { } return nil - } func (c *commandeer) initCPUProfile() (func(), error) { @@ -419,7 +410,6 @@ func (c *commandeer) initMutexProfile() (func(), error) { pprof.Lookup("mutex").WriteTo(f, 0) f.Close() }, nil - } func (c *commandeer) initMemTicker() func() { @@ -429,7 +419,6 @@ func (c *commandeer) initMemTicker() func() { var m runtime.MemStats runtime.ReadMemStats(&m) fmt.Printf("\n\nAlloc = %v\nTotalAlloc = %v\nSys = %v\nNumGC = %v\n\n", formatByteCount(m.Alloc), formatByteCount(m.TotalAlloc), formatByteCount(m.Sys), m.NumGC) - } go func() { @@ -442,7 +431,6 @@ func (c *commandeer) initMemTicker() func() { printMem() return } - } }() @@ -452,7 +440,6 @@ func (c *commandeer) initMemTicker() func() { } func (c *commandeer) initProfiling() (func(), error) { - stopCPUProf, err := c.initCPUProfile() if err != nil { return nil, err @@ -538,7 +525,7 @@ func (c *commandeer) build() error { checkErr(c.Logger, err) defer watcher.Close() - var sigs = make(chan os.Signal, 1) + sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) <-sigs @@ -584,7 +571,6 @@ func (c *commandeer) copyStatic() (map[string]uint64, error) { } func (c *commandeer) doWithPublishDirs(f func(sourceFs *filesystems.SourceFilesystem) (uint64, error)) (map[string]uint64, error) { - langCount := make(map[string]uint64) staticFilesystems := c.hugo().BaseFs.SourceFilesystems.Static @@ -712,7 +698,6 @@ func (c *commandeer) getDirList() ([]string, error) { } return nil - } watchFiles := c.hugo().PathSpec.BaseFs.WatchDirs() @@ -753,7 +738,6 @@ func (c *commandeer) rebuildSites(events []fsnotify.Event) error { c.buildErr = nil visited := c.visitedURLs.PeekAllSet() if c.fastRenderMode { - // Make sure we always render the home pages for _, l := range c.languages { langPath := c.hugo().PathSpec.GetLangSubDir(l.Lang) @@ -763,7 +747,6 @@ func (c *commandeer) rebuildSites(events []fsnotify.Event) error { home := c.hugo().PathSpec.PrependBasePath("/"+langPath, false) visited[home] = true } - } return c.hugo().Build(hugolib.BuildCfg{RecentlyVisited: visited, ErrRecovery: c.wasError}, events...) } @@ -793,13 +776,11 @@ func (c *commandeer) fullRebuild(changeType string) { c.fullRebuildSem.Acquire(context.Background(), 1) go func() { - defer c.fullRebuildSem.Release(1) c.printChangeDetected(changeType) defer func() { - // Allow any file system events to arrive back. // This will block any rebuild on config changes for the // duration of the sleep. @@ -848,7 +829,6 @@ func (c *commandeer) newWatcher(dirList ...string) (*watcher.Batcher, error) { } watcher, err := watcher.New(1 * time.Second) - if err != nil { return nil, err } @@ -909,7 +889,6 @@ func (c *commandeer) handleEvents(watcher *watcher.Batcher, staticSyncer *staticSyncer, evs []fsnotify.Event, configSet map[string]bool) { - defer func() { c.wasError = false }() @@ -950,7 +929,6 @@ func (c *commandeer) handleEvents(watcher *watcher.Batcher, time.Sleep(100 * time.Millisecond) } } - } // Config file(s) changed. Need full rebuild. @@ -1194,7 +1172,6 @@ func partitionDynamicEvents(sourceFs *filesystems.SourceFilesystems, events []fs } } return - } func pickOneWriteOrCreatePath(events []fsnotify.Event) string { diff --git a/commands/hugo_test.go b/commands/hugo_test.go index 65a0416c7..4bead09f0 100644 --- a/commands/hugo_test.go +++ b/commands/hugo_test.go @@ -44,5 +44,4 @@ contentDir = "thisdoesnotexist" _, err = cmd.ExecuteC() c.Assert(err, qt.IsNil) - } diff --git a/commands/import_jekyll.go b/commands/import_jekyll.go index 2dd0fc051..b9ea56d4b 100644 --- a/commands/import_jekyll.go +++ b/commands/import_jekyll.go @@ -74,11 +74,9 @@ Import from Jekyll requires two paths, e.g. ` + "`hugo import jekyll jekyll_root cc.cmd.AddCommand(importJekyllCmd) return cc - } func (i *importCmd) importFromJekyll(cmd *cobra.Command, args []string) error { - if len(args) < 2 { return newUserError(`import from jekyll requires two paths, e.g. ` + "`hugo import jekyll jekyll_root_path target_path`.") } @@ -255,13 +253,11 @@ func (i *importCmd) loadJekyllConfig(fs afero.Fs, jekyllRoot string) map[string] defer f.Close() b, err := ioutil.ReadAll(f) - if err != nil { return nil } c, err := metadecoders.Default.UnmarshalToMap(b, metadecoders.YAML) - if err != nil { return nil } @@ -338,8 +334,10 @@ func (i *importCmd) copyJekyllFilesAndFolders(jekyllRoot, dest string, jekyllPos } } else { lowerEntryName := strings.ToLower(entry.Name()) - exceptSuffix := []string{".md", ".markdown", ".html", ".htm", - ".xml", ".textile", "rakefile", "gemfile", ".lock"} + exceptSuffix := []string{ + ".md", ".markdown", ".html", ".htm", + ".xml", ".textile", "rakefile", "gemfile", ".lock", + } isExcept := false for _, suffix := range exceptSuffix { if strings.HasSuffix(lowerEntryName, suffix) { @@ -602,8 +600,8 @@ func replaceImageTag(match string) string { } result.WriteString(">}}") return result.String() - } + func replaceOptionalPart(buffer *bytes.Buffer, partName string, part string) { if len(part) > 0 { buffer.WriteString(partName + "=\"" + part + "\" ") diff --git a/commands/import_jekyll_test.go b/commands/import_jekyll_test.go index c87c224b2..3819d03a5 100644 --- a/commands/import_jekyll_test.go +++ b/commands/import_jekyll_test.go @@ -53,25 +53,41 @@ func TestConvertJekyllMetadata(t *testing.T) { draft bool expect string }{ - {map[interface{}]interface{}{}, "testPost", time.Date(2015, 10, 1, 0, 0, 0, 0, time.UTC), false, - `{"date":"2015-10-01T00:00:00Z"}`}, - {map[interface{}]interface{}{}, "testPost", time.Date(2015, 10, 1, 0, 0, 0, 0, time.UTC), true, - `{"date":"2015-10-01T00:00:00Z","draft":true}`}, - {map[interface{}]interface{}{"Permalink": "/permalink.html", "layout": "post"}, + { + map[interface{}]interface{}{}, "testPost", time.Date(2015, 10, 1, 0, 0, 0, 0, time.UTC), false, - `{"date":"2015-10-01T00:00:00Z","url":"/permalink.html"}`}, - {map[interface{}]interface{}{"permalink": "/permalink.html"}, + `{"date":"2015-10-01T00:00:00Z"}`, + }, + { + map[interface{}]interface{}{}, + "testPost", time.Date(2015, 10, 1, 0, 0, 0, 0, time.UTC), true, + `{"date":"2015-10-01T00:00:00Z","draft":true}`, + }, + { + map[interface{}]interface{}{"Permalink": "/permalink.html", "layout": "post"}, "testPost", time.Date(2015, 10, 1, 0, 0, 0, 0, time.UTC), false, - `{"date":"2015-10-01T00:00:00Z","url":"/permalink.html"}`}, - {map[interface{}]interface{}{"category": nil, "permalink": 123}, + `{"date":"2015-10-01T00:00:00Z","url":"/permalink.html"}`, + }, + { + map[interface{}]interface{}{"permalink": "/permalink.html"}, "testPost", time.Date(2015, 10, 1, 0, 0, 0, 0, time.UTC), false, - `{"date":"2015-10-01T00:00:00Z"}`}, - {map[interface{}]interface{}{"Excerpt_Separator": "sep"}, + `{"date":"2015-10-01T00:00:00Z","url":"/permalink.html"}`, + }, + { + map[interface{}]interface{}{"category": nil, "permalink": 123}, "testPost", time.Date(2015, 10, 1, 0, 0, 0, 0, time.UTC), false, - `{"date":"2015-10-01T00:00:00Z","excerpt_separator":"sep"}`}, - {map[interface{}]interface{}{"category": "book", "layout": "post", "Others": "Goods", "Date": "2015-10-01 12:13:11"}, + `{"date":"2015-10-01T00:00:00Z"}`, + }, + { + map[interface{}]interface{}{"Excerpt_Separator": "sep"}, "testPost", time.Date(2015, 10, 1, 0, 0, 0, 0, time.UTC), false, - `{"Others":"Goods","categories":["book"],"date":"2015-10-01T12:13:11Z"}`}, + `{"date":"2015-10-01T00:00:00Z","excerpt_separator":"sep"}`, + }, + { + map[interface{}]interface{}{"category": "book", "layout": "post", "Others": "Goods", "Date": "2015-10-01 12:13:11"}, + "testPost", time.Date(2015, 10, 1, 0, 0, 0, 0, time.UTC), false, + `{"Others":"Goods","categories":["book"],"date":"2015-10-01T12:13:11Z"}`, + }, } for _, data := range testDataList { @@ -90,44 +106,68 @@ func TestConvertJekyllContent(t *testing.T) { content string expect string }{ - {map[interface{}]interface{}{}, - "Test content\r\n\npart2 content", "Test content\n\npart2 content"}, - {map[interface{}]interface{}{}, - "Test content\n\npart2 content", "Test content\n\npart2 content"}, - {map[interface{}]interface{}{"excerpt_separator": ""}, + { + map[interface{}]interface{}{}, + "Test content\r\n\npart2 content", "Test content\n\npart2 content", + }, + { + map[interface{}]interface{}{}, + "Test content\n\npart2 content", "Test content\n\npart2 content", + }, + { + map[interface{}]interface{}{"excerpt_separator": ""}, "Test content\n\npart2 content", - "---\nexcerpt_separator: \n---\nTest content\n\npart2 content"}, + "---\nexcerpt_separator: \n---\nTest content\n\npart2 content", + }, {map[interface{}]interface{}{}, "{% raw %}text{% endraw %}", "text"}, {map[interface{}]interface{}{}, "{%raw%} text2 {%endraw %}", "text2"}, - {map[interface{}]interface{}{}, + { + map[interface{}]interface{}{}, "{% highlight go %}\nvar s int\n{% endhighlight %}", - "{{< highlight go >}}\nvar s int\n{{< / highlight >}}"}, - {map[interface{}]interface{}{}, + "{{< highlight go >}}\nvar s int\n{{< / highlight >}}", + }, + { + map[interface{}]interface{}{}, "{% highlight go linenos hl_lines=\"1 2\" %}\nvar s string\nvar i int\n{% endhighlight %}", - "{{< highlight go \"linenos=table,hl_lines=1 2\" >}}\nvar s string\nvar i int\n{{< / highlight >}}"}, + "{{< highlight go \"linenos=table,hl_lines=1 2\" >}}\nvar s string\nvar i int\n{{< / highlight >}}", + }, // Octopress image tag - {map[interface{}]interface{}{}, + { + map[interface{}]interface{}{}, "{% img http://placekitten.com/890/280 %}", - "{{< figure src=\"http://placekitten.com/890/280\" >}}"}, - {map[interface{}]interface{}{}, + "{{< figure src=\"http://placekitten.com/890/280\" >}}", + }, + { + map[interface{}]interface{}{}, "{% img left http://placekitten.com/320/250 Place Kitten #2 %}", - "{{< figure class=\"left\" src=\"http://placekitten.com/320/250\" title=\"Place Kitten #2\" >}}"}, - {map[interface{}]interface{}{}, + "{{< figure class=\"left\" src=\"http://placekitten.com/320/250\" title=\"Place Kitten #2\" >}}", + }, + { + map[interface{}]interface{}{}, "{% img right http://placekitten.com/300/500 150 250 'Place Kitten #3' %}", - "{{< figure class=\"right\" src=\"http://placekitten.com/300/500\" width=\"150\" height=\"250\" title=\"Place Kitten #3\" >}}"}, - {map[interface{}]interface{}{}, + "{{< figure class=\"right\" src=\"http://placekitten.com/300/500\" width=\"150\" height=\"250\" title=\"Place Kitten #3\" >}}", + }, + { + map[interface{}]interface{}{}, "{% img right http://placekitten.com/300/500 150 250 'Place Kitten #4' 'An image of a very cute kitten' %}", - "{{< figure class=\"right\" src=\"http://placekitten.com/300/500\" width=\"150\" height=\"250\" title=\"Place Kitten #4\" alt=\"An image of a very cute kitten\" >}}"}, - {map[interface{}]interface{}{}, + "{{< figure class=\"right\" src=\"http://placekitten.com/300/500\" width=\"150\" height=\"250\" title=\"Place Kitten #4\" alt=\"An image of a very cute kitten\" >}}", + }, + { + map[interface{}]interface{}{}, "{% img http://placekitten.com/300/500 150 250 'Place Kitten #4' 'An image of a very cute kitten' %}", - "{{< figure src=\"http://placekitten.com/300/500\" width=\"150\" height=\"250\" title=\"Place Kitten #4\" alt=\"An image of a very cute kitten\" >}}"}, - {map[interface{}]interface{}{}, + "{{< figure src=\"http://placekitten.com/300/500\" width=\"150\" height=\"250\" title=\"Place Kitten #4\" alt=\"An image of a very cute kitten\" >}}", + }, + { + map[interface{}]interface{}{}, "{% img right /placekitten/300/500 'Place Kitten #4' 'An image of a very cute kitten' %}", - "{{< figure class=\"right\" src=\"/placekitten/300/500\" title=\"Place Kitten #4\" alt=\"An image of a very cute kitten\" >}}"}, - {map[interface{}]interface{}{"category": "book", "layout": "post", "Date": "2015-10-01 12:13:11"}, + "{{< figure class=\"right\" src=\"/placekitten/300/500\" title=\"Place Kitten #4\" alt=\"An image of a very cute kitten\" >}}", + }, + { + map[interface{}]interface{}{"category": "book", "layout": "post", "Date": "2015-10-01 12:13:11"}, "somecontent", - "---\nDate: \"2015-10-01 12:13:11\"\ncategory: book\nlayout: post\n---\nsomecontent"}, + "---\nDate: \"2015-10-01 12:13:11\"\ncategory: book\nlayout: post\n---\nsomecontent", + }, } for _, data := range testDataList { result, err := convertJekyllContent(data.metadata, data.content) diff --git a/commands/list.go b/commands/list.go index 0b7c18797..3c09cad25 100644 --- a/commands/list.go +++ b/commands/list.go @@ -46,7 +46,6 @@ func (lc *listCmd) buildSites(config map[string]interface{}) (*hugolib.HugoSites } sites, err := hugolib.NewHugoSites(*c.DepsCfg) - if err != nil { return nil, newSystemError("Error creating sites", err) } @@ -77,7 +76,6 @@ List requires a subcommand, e.g. ` + "`hugo list drafts`.", Long: `List all of the drafts in your content directory.`, RunE: func(cmd *cobra.Command, args []string) error { sites, err := cc.buildSites(map[string]interface{}{"buildDrafts": true}) - if err != nil { return newSystemError("Error building sites", err) } @@ -97,7 +95,6 @@ List requires a subcommand, e.g. ` + "`hugo list drafts`.", Long: `List all of the posts in your content directory which will be posted in the future.`, RunE: func(cmd *cobra.Command, args []string) error { sites, err := cc.buildSites(map[string]interface{}{"buildFuture": true}) - if err != nil { return newSystemError("Error building sites", err) } @@ -126,7 +123,6 @@ List requires a subcommand, e.g. ` + "`hugo list drafts`.", Long: `List all of the posts in your content directory which has already expired.`, RunE: func(cmd *cobra.Command, args []string) error { sites, err := cc.buildSites(map[string]interface{}{"buildExpired": true}) - if err != nil { return newSystemError("Error building sites", err) } @@ -159,7 +155,6 @@ List requires a subcommand, e.g. ` + "`hugo list drafts`.", "buildDrafts": true, "buildFuture": true, }) - if err != nil { return newSystemError("Error building sites", err) } diff --git a/commands/mod.go b/commands/mod.go index b390d1e75..c6870e1d2 100644 --- a/commands/mod.go +++ b/commands/mod.go @@ -91,7 +91,6 @@ Also note that if you configure a positive maxAge for the "modules" file cache, } func (b *commandsBuilder) newModCmd() *modCmd { - c := &modCmd{} const commonUsage = ` @@ -264,7 +263,6 @@ If a module is vendored, that is where Hugo will look for it's dependencies. c.baseBuilderCmd = b.newBuilderCmd(cmd) return c - } func (c *modCmd) withModsClient(failOnMissingConfig bool, f func(*modules.Client) error) error { diff --git a/commands/mod_npm.go b/commands/mod_npm.go index a73908e7a..852d98571 100644 --- a/commands/mod_npm.go +++ b/commands/mod_npm.go @@ -20,7 +20,6 @@ import ( ) func newModNPMCmd(c *modCmd) *cobra.Command { - cmd := &cobra.Command{ Use: "npm", Short: "Various npm helpers.", @@ -47,7 +46,6 @@ removed from Hugo, but we need to test this out in "real life" to get a feel of so this may/will change in future versions of Hugo. `, RunE: func(cmd *cobra.Command, args []string) error { - return c.withHugo(func(h *hugolib.HugoSites) error { return npm.Pack(h.BaseFs.SourceFs, h.BaseFs.Assets.Dirs) }) diff --git a/commands/new.go b/commands/new.go index 576976e8e..a2d873717 100644 --- a/commands/new.go +++ b/commands/new.go @@ -72,7 +72,6 @@ func (n *newCmd) newContent(cmd *cobra.Command, args []string) error { } c, err := initializeConfig(true, false, &n.hugoBuilderCommon, n, cfgInit) - if err != nil { return err } diff --git a/commands/new_site.go b/commands/new_site.go index 9fb47096a..6fac2c22c 100644 --- a/commands/new_site.go +++ b/commands/new_site.go @@ -58,7 +58,6 @@ Use ` + "`hugo new [contentPath]`" + ` to create new content.`, cc.baseBuilderCmd = b.newBuilderBasicCmd(cmd) return cc - } func (n *newSiteCmd) doNewSite(fs *hugofs.Fs, basepath string, force bool) error { diff --git a/commands/new_theme.go b/commands/new_theme.go index cb85a1db2..3ffd85c04 100644 --- a/commands/new_theme.go +++ b/commands/new_theme.go @@ -53,7 +53,6 @@ as you see fit.`, // newTheme creates a new Hugo theme template func (n *newThemeCmd) newTheme(cmd *cobra.Command, args []string) error { c, err := initializeConfig(false, false, &n.hugoBuilderCommon, n, nil) - if err != nil { return err } @@ -145,7 +144,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. } func (n *newThemeCmd) createThemeMD(fs *hugofs.Fs, inpath string) (err error) { - by := []byte(`# theme.toml template for a Hugo theme # See https://github.com/gohugoio/hugoThemes#themetoml for an example diff --git a/commands/nodeploy.go b/commands/nodeploy.go index 146a61f17..363602c51 100644 --- a/commands/nodeploy.go +++ b/commands/nodeploy.go @@ -17,6 +17,7 @@ package commands import ( "errors" + "github.com/spf13/cobra" ) diff --git a/commands/release.go b/commands/release.go index 4de165f35..3b78590e6 100644 --- a/commands/release.go +++ b/commands/release.go @@ -61,7 +61,6 @@ func (c *releaseCommandeer) getCommand() *cobra.Command { } func (c *releaseCommandeer) flagsToConfig(cfg config.Provider) { - } func (r *releaseCommandeer) release() error { diff --git a/commands/server.go b/commands/server.go index ef504f20f..93d825993 100644 --- a/commands/server.go +++ b/commands/server.go @@ -228,7 +228,6 @@ func (sc *serverCmd) server(cmd *cobra.Command, args []string) error { } return err - } if err := memStats(); err != nil { @@ -262,7 +261,6 @@ func (sc *serverCmd) server(cmd *cobra.Command, args []string) error { jww.FEEDBACK.Printf("Watching for changes in %s\n", group) } watcher, err := c.newWatcher(watchDirs...) - if err != nil { return err } @@ -272,7 +270,6 @@ func (sc *serverCmd) server(cmd *cobra.Command, args []string) error { } return c.serve(sc) - } func getRootWatchDirsStr(baseDir string, watchDirs []string) string { @@ -301,7 +298,6 @@ func (f *fileServer) rewriteRequest(r *http.Request, toPath string) *http.Reques r2.Header.Set("X-Rewrite-Original-URI", r.URL.RequestURI()) return r2 - } func (f *fileServer) createEndpoint(i int) (*http.ServeMux, string, string, error) { @@ -393,7 +389,6 @@ func (f *fileServer) createEndpoint(i int) (*http.ServeMux, string, string, erro } else { doRedirect = false } - } } @@ -413,7 +408,6 @@ func (f *fileServer) createEndpoint(i int) (*http.ServeMux, string, string, erro } if f.c.fastRenderMode && f.c.buildErr == nil { - if strings.HasSuffix(requestURI, "/") || strings.HasSuffix(requestURI, "html") || strings.HasSuffix(requestURI, "htm") { if !f.c.visitedURLs.Contains(requestURI) { // If not already on stack, re-render that single page. @@ -453,8 +447,8 @@ var logErrorRe = regexp.MustCompile(`(?s)ERROR \d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{ func removeErrorPrefixFromLog(content string) string { return logErrorRe.ReplaceAllLiteralString(content, "") } -func (c *commandeer) serve(s *serverCmd) error { +func (c *commandeer) serve(s *serverCmd) error { isMultiHost := c.hugo().IsMultihost() var ( @@ -496,7 +490,7 @@ func (c *commandeer) serve(s *serverCmd) error { livereload.Initialize() } - var sigs = make(chan os.Signal, 1) + sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) for i := range baseURLs { diff --git a/commands/server_test.go b/commands/server_test.go index 04e874f94..cc2a6d92c 100644 --- a/commands/server_test.go +++ b/commands/server_test.go @@ -73,7 +73,6 @@ func TestServer(t *testing.T) { // Stop the server. stop <- true - } func TestFixURL(t *testing.T) { @@ -127,7 +126,6 @@ ERROR 2018/10/07 13:11:12 Rebuild failed: logged 1 error(s) withoutError := removeErrorPrefixFromLog(content) c.Assert(strings.Contains(withoutError, "ERROR"), qt.Equals, false) - } func isWindowsCI() bool { diff --git a/commands/static_syncer.go b/commands/static_syncer.go index bd696520a..23bdbe2df 100644 --- a/commands/static_syncer.go +++ b/commands/static_syncer.go @@ -128,5 +128,4 @@ func (s *staticSyncer) syncsStaticEvents(staticEvents []fsnotify.Event) error { _, err := c.doWithPublishDirs(syncFn) return err - } diff --git a/common/collections/append.go b/common/collections/append.go index b56455bc9..d6fb89241 100644 --- a/common/collections/append.go +++ b/common/collections/append.go @@ -51,7 +51,6 @@ func Append(to interface{}, from ...interface{}) (interface{}, error) { } else if !fromt.AssignableTo(tot) { // Fall back to a []interface{} slice. return appendToInterfaceSliceFromValues(tov, fromv) - } } } diff --git a/common/collections/append_test.go b/common/collections/append_test.go index 4086570b8..7d6117de8 100644 --- a/common/collections/append_test.go +++ b/common/collections/append_test.go @@ -36,28 +36,44 @@ func TestAppend(t *testing.T) { {nil, []interface{}{"a", "b"}, []string{"a", "b"}}, {nil, []interface{}{nil}, []interface{}{nil}}, {[]interface{}{}, []interface{}{[]string{"c", "d", "e"}}, []string{"c", "d", "e"}}, - {tstSlicers{&tstSlicer{"a"}, &tstSlicer{"b"}}, + { + tstSlicers{&tstSlicer{"a"}, &tstSlicer{"b"}}, []interface{}{&tstSlicer{"c"}}, - tstSlicers{&tstSlicer{"a"}, &tstSlicer{"b"}, &tstSlicer{"c"}}}, - {&tstSlicers{&tstSlicer{"a"}, &tstSlicer{"b"}}, + tstSlicers{&tstSlicer{"a"}, &tstSlicer{"b"}, &tstSlicer{"c"}}, + }, + { + &tstSlicers{&tstSlicer{"a"}, &tstSlicer{"b"}}, []interface{}{&tstSlicer{"c"}}, - tstSlicers{&tstSlicer{"a"}, + tstSlicers{ + &tstSlicer{"a"}, &tstSlicer{"b"}, - &tstSlicer{"c"}}}, - {testSlicerInterfaces{&tstSlicerIn1{"a"}, &tstSlicerIn1{"b"}}, + &tstSlicer{"c"}, + }, + }, + { + testSlicerInterfaces{&tstSlicerIn1{"a"}, &tstSlicerIn1{"b"}}, []interface{}{&tstSlicerIn1{"c"}}, - testSlicerInterfaces{&tstSlicerIn1{"a"}, &tstSlicerIn1{"b"}, &tstSlicerIn1{"c"}}}, + testSlicerInterfaces{&tstSlicerIn1{"a"}, &tstSlicerIn1{"b"}, &tstSlicerIn1{"c"}}, + }, //https://github.com/gohugoio/hugo/issues/5361 - {[]string{"a", "b"}, []interface{}{tstSlicers{&tstSlicer{"a"}, &tstSlicer{"b"}}}, - []interface{}{"a", "b", &tstSlicer{"a"}, &tstSlicer{"b"}}}, - {[]string{"a", "b"}, []interface{}{&tstSlicer{"a"}}, - []interface{}{"a", "b", &tstSlicer{"a"}}}, + { + []string{"a", "b"}, + []interface{}{tstSlicers{&tstSlicer{"a"}, &tstSlicer{"b"}}}, + []interface{}{"a", "b", &tstSlicer{"a"}, &tstSlicer{"b"}}, + }, + { + []string{"a", "b"}, + []interface{}{&tstSlicer{"a"}}, + []interface{}{"a", "b", &tstSlicer{"a"}}, + }, // Errors {"", []interface{}{[]string{"a", "b"}}, false}, // No string concatenation. - {"ab", + { + "ab", []interface{}{"c"}, - false}, + false, + }, } { result, err := Append(test.start, test.addend...) @@ -71,5 +87,4 @@ func TestAppend(t *testing.T) { c.Assert(err, qt.IsNil) c.Assert(result, qt.DeepEquals, test.expected) } - } diff --git a/common/collections/slice_test.go b/common/collections/slice_test.go index 3ebfe6d11..93bad84da 100644 --- a/common/collections/slice_test.go +++ b/common/collections/slice_test.go @@ -20,11 +20,13 @@ import ( qt "github.com/frankban/quicktest" ) -var _ Slicer = (*tstSlicer)(nil) -var _ Slicer = (*tstSlicerIn1)(nil) -var _ Slicer = (*tstSlicerIn2)(nil) -var _ testSlicerInterface = (*tstSlicerIn1)(nil) -var _ testSlicerInterface = (*tstSlicerIn1)(nil) +var ( + _ Slicer = (*tstSlicer)(nil) + _ Slicer = (*tstSlicerIn1)(nil) + _ Slicer = (*tstSlicerIn2)(nil) + _ testSlicerInterface = (*tstSlicerIn1)(nil) + _ testSlicerInterface = (*tstSlicerIn1)(nil) +) type testSlicerInterface interface { Name() string @@ -54,7 +56,6 @@ func (p *tstSlicerIn1) Slice(in interface{}) (interface{}, error) { default: return nil, errors.New("invalid type") } - } return result, nil } @@ -120,5 +121,4 @@ func TestSlice(t *testing.T) { c.Assert(test.expected, qt.DeepEquals, result, errMsg) } - } diff --git a/common/herrors/error_locator_test.go b/common/herrors/error_locator_test.go index bc34a2cdf..0cd5fb2d7 100644 --- a/common/herrors/error_locator_test.go +++ b/common/herrors/error_locator_test.go @@ -125,5 +125,4 @@ E`, offsetMatcher) c.Assert(location.Lines, qt.DeepEquals, []string{"A", "B", "C", "D"}) c.Assert(location.Position().LineNumber, qt.Equals, 2) c.Assert(location.LinesPos, qt.Equals, 1) - } diff --git a/common/herrors/file_error.go b/common/herrors/file_error.go index 039c25dc8..1cb31ff9f 100644 --- a/common/herrors/file_error.go +++ b/common/herrors/file_error.go @@ -21,9 +21,7 @@ import ( "github.com/pkg/errors" ) -var ( - _ causer = (*fileError)(nil) -) +var _ causer = (*fileError)(nil) // FileError represents an error when handling a file: Parsing a config file, // execute a template etc. diff --git a/common/herrors/file_error_test.go b/common/herrors/file_error_test.go index b1b5c5a02..4b42f8f39 100644 --- a/common/herrors/file_error_test.go +++ b/common/herrors/file_error_test.go @@ -52,5 +52,4 @@ func TestToLineNumberError(t *testing.T) { c.Assert(pos.ColumnNumber, qt.Equals, test.columnNumber, errMsg) c.Assert(errors.Cause(got), qt.Not(qt.IsNil)) } - } diff --git a/common/hreflect/helpers.go b/common/hreflect/helpers.go index d936da19c..cd5714d2f 100644 --- a/common/hreflect/helpers.go +++ b/common/hreflect/helpers.go @@ -67,7 +67,6 @@ func IsTruthful(in interface{}) bool { default: return IsTruthfulValue(reflect.ValueOf(in)) } - } var zeroType = reflect.TypeOf((*types.Zeroer)(nil)).Elem() diff --git a/common/hugo/hugo_test.go b/common/hugo/hugo_test.go index 8840a9e9e..0862f36e7 100644 --- a/common/hugo/hugo_test.go +++ b/common/hugo/hugo_test.go @@ -35,5 +35,4 @@ func TestHugoInfo(t *testing.T) { devHugoInfo := NewInfo("development") c.Assert(devHugoInfo.IsProduction(), qt.Equals, false) - } diff --git a/common/hugo/version.go b/common/hugo/version.go index 038537fc0..b87dab547 100644 --- a/common/hugo/version.go +++ b/common/hugo/version.go @@ -16,7 +16,6 @@ package hugo import ( "fmt" "io" - "runtime" "strings" @@ -146,7 +145,6 @@ func BuildVersionString() string { } return fmt.Sprintf("%s %s %s BuildDate: %s", program, version, osArch, date) - } func version(version float32, patchVersion int, suffix string) string { diff --git a/common/loggers/ignorableLogger.go b/common/loggers/ignorableLogger.go index 1bd4d99b8..766aae07c 100644 --- a/common/loggers/ignorableLogger.go +++ b/common/loggers/ignorableLogger.go @@ -34,7 +34,6 @@ func NewIgnorableLogger(logger Logger, statements ...string) IgnorableLogger { statementsSet := make(map[string]bool) for _, s := range statements { statementsSet[strings.ToLower(s)] = true - } return ignorableLogger{ Logger: logger, diff --git a/common/loggers/loggers.go b/common/loggers/loggers.go index 5c04b9eab..c9b5d21be 100644 --- a/common/loggers/loggers.go +++ b/common/loggers/loggers.go @@ -29,10 +29,8 @@ import ( jww "github.com/spf13/jwalterweatherman" ) -var ( - // Counts ERROR logs to the global jww logger. - GlobalErrorCounter *jww.Counter -) +// Counts ERROR logs to the global jww logger. +var GlobalErrorCounter *jww.Counter func init() { GlobalErrorCounter = &jww.Counter{} @@ -253,7 +251,6 @@ func (a labelColorizer) Write(p []byte) (n int, err error) { // bytes, so we lie a little. _, err = a.w.Write([]byte(replaced)) return len(p), err - } // InitGlobalLogger initializes the global logger, used in some rare cases. @@ -264,7 +261,6 @@ func InitGlobalLogger(stdoutThreshold, logThreshold jww.Threshold, outHandle, lo jww.SetLogOutput(logHandle) jww.SetLogThreshold(logThreshold) jww.SetStdoutThreshold(stdoutThreshold) - } func getLogWriters(outHandle, logHandle io.Writer) (io.Writer, io.Writer) { @@ -279,7 +275,6 @@ func getLogWriters(outHandle, logHandle io.Writer) (io.Writer, io.Writer) { } return outHandle, logHandle - } type fatalLogWriter int diff --git a/common/loggers/loggers_test.go b/common/loggers/loggers_test.go index 7af3ca9da..0c0cc859b 100644 --- a/common/loggers/loggers_test.go +++ b/common/loggers/loggers_test.go @@ -31,7 +31,6 @@ func TestLogger(t *testing.T) { l.Warnln("A warning") c.Assert(l.LogCounters().ErrorCounter.Count(), qt.Equals, uint64(2)) - } func TestLoggerToWriterWithPrefix(t *testing.T) { diff --git a/common/maps/maps_test.go b/common/maps/maps_test.go index bde77071d..7e527aac5 100644 --- a/common/maps/maps_test.go +++ b/common/maps/maps_test.go @@ -154,5 +154,4 @@ func TestRenameKeys(t *testing.T) { if !reflect.DeepEqual(expected, m) { t.Errorf("Expected\n%#v, got\n%#v\n", expected, m) } - } diff --git a/common/maps/params.go b/common/maps/params.go index 5e973051b..4c881093c 100644 --- a/common/maps/params.go +++ b/common/maps/params.go @@ -80,7 +80,6 @@ func GetNestedParam(keyStr, separator string, candidates ...Params) (interface{} } return nil, nil - } func GetNestedParamFn(keyStr, separator string, lookupFn func(key string) interface{}) (interface{}, string, map[string]interface{}, error) { diff --git a/common/maps/params_test.go b/common/maps/params_test.go index 46d672d87..df8cbf8d6 100644 --- a/common/maps/params_test.go +++ b/common/maps/params_test.go @@ -20,7 +20,6 @@ import ( ) func TestGetNestedParam(t *testing.T) { - m := map[string]interface{}{ "string": "value", "first": 1, @@ -48,12 +47,10 @@ func TestGetNestedParam(t *testing.T) { c.Assert(must("nested.nestednested.color", ".", m), qt.Equals, "green") c.Assert(must("string.name", ".", m), qt.IsNil) c.Assert(must("nested.foo", ".", m), qt.IsNil) - } // https://github.com/gohugoio/hugo/issues/7903 func TestGetNestedParamFnNestedNewKey(t *testing.T) { - c := qt.New(t) nested := map[string]interface{}{ @@ -71,5 +68,4 @@ func TestGetNestedParamFnNestedNewKey(t *testing.T) { c.Assert(existing, qt.IsNil) c.Assert(nestedKey, qt.Equals, "new") c.Assert(owner, qt.DeepEquals, nested) - } diff --git a/common/maps/scratch.go b/common/maps/scratch.go index 7a3cd3748..ccd03ef32 100644 --- a/common/maps/scratch.go +++ b/common/maps/scratch.go @@ -51,7 +51,6 @@ func NewScratcher() Scratcher { // // If the first add for a key is an array or slice, then the next value(s) will be appended. func (c *Scratch) Add(key string, newAddend interface{}) (string, error) { - var newVal interface{} c.mu.RLock() existingAddend, found := c.values[key] diff --git a/common/maps/scratch_test.go b/common/maps/scratch_test.go index 40df3bb6b..d893ccb03 100644 --- a/common/maps/scratch_test.go +++ b/common/maps/scratch_test.go @@ -53,7 +53,6 @@ func TestScratchAdd(t *testing.T) { if err == nil { t.Errorf("Expected error from invalid arithmetic") } - } func TestScratchAddSlice(t *testing.T) { @@ -96,7 +95,6 @@ func TestScratchAddTypedSliceToInterfaceSlice(t *testing.T) { _, err := scratch.Add("slice", []int{1, 2}) c.Assert(err, qt.IsNil) c.Assert(scratch.Get("slice"), qt.DeepEquals, []int{1, 2}) - } // https://github.com/gohugoio/hugo/issues/5361 @@ -110,7 +108,6 @@ func TestScratchAddDifferentTypedSliceToInterfaceSlice(t *testing.T) { _, err := scratch.Add("slice", []int{1, 2}) c.Assert(err, qt.IsNil) c.Assert(scratch.Get("slice"), qt.DeepEquals, []interface{}{"foo", 1, 2}) - } func TestScratchSet(t *testing.T) { diff --git a/common/para/para_test.go b/common/para/para_test.go index 9b268b0c0..e89f9360b 100644 --- a/common/para/para_test.go +++ b/common/para/para_test.go @@ -16,7 +16,6 @@ package para import ( "context" "runtime" - "sort" "sync" "sync/atomic" @@ -60,7 +59,6 @@ func TestPara(t *testing.T) { c.Assert(sort.IntsAreSorted(result), qt.Equals, false, qt.Commentf("Para does not seem to be parallel")) sort.Ints(result) c.Assert(result, qt.DeepEquals, ints) - }) c.Run("Time", func(c *qt.C) { @@ -84,7 +82,5 @@ func TestPara(t *testing.T) { c.Assert(r.Wait(), qt.IsNil) c.Assert(counter, qt.Equals, int64(n)) c.Assert(time.Since(start) < n/2*time.Millisecond, qt.Equals, true) - }) - } diff --git a/common/text/position.go b/common/text/position.go index 0c43c5ae7..5dd64526a 100644 --- a/common/text/position.go +++ b/common/text/position.go @@ -50,12 +50,11 @@ func (pos Position) IsValid() bool { var positionStringFormatfunc func(p Position) string func createPositionStringFormatter(formatStr string) func(p Position) string { - if formatStr == "" { formatStr = "\":file::line::col\"" } - var identifiers = []string{":file", ":line", ":col"} + identifiers := []string{":file", ":line", ":col"} var identifiersFound []string for i := range formatStr { diff --git a/common/text/position_test.go b/common/text/position_test.go index ba4824344..a1f43c5d4 100644 --- a/common/text/position_test.go +++ b/common/text/position_test.go @@ -29,5 +29,4 @@ func TestPositionStringFormatter(t *testing.T) { c.Assert(createPositionStringFormatter("好::col")(pos), qt.Equals, "好:13") c.Assert(createPositionStringFormatter("")(pos), qt.Equals, "\"/my/file.txt:12:13\"") c.Assert(pos.String(), qt.Equals, "\"/my/file.txt:12:13\"") - } diff --git a/common/text/transform_test.go b/common/text/transform_test.go index 70b10d149..08265f976 100644 --- a/common/text/transform_test.go +++ b/common/text/transform_test.go @@ -25,5 +25,4 @@ func TestRemoveAccents(t *testing.T) { c.Assert(string(RemoveAccents([]byte("Resumé"))), qt.Equals, "Resume") c.Assert(string(RemoveAccents([]byte("Hugo Rocks!"))), qt.Equals, "Hugo Rocks!") c.Assert(string(RemoveAccentsString("Resumé")), qt.Equals, "Resume") - } diff --git a/common/types/convert_test.go b/common/types/convert_test.go index 8a4f04db2..d053ede60 100644 --- a/common/types/convert_test.go +++ b/common/types/convert_test.go @@ -26,7 +26,6 @@ func TestToStringSlicePreserveString(t *testing.T) { c.Assert(ToStringSlicePreserveString("Hugo"), qt.DeepEquals, []string{"Hugo"}) c.Assert(ToStringSlicePreserveString([]interface{}{"A", "B"}), qt.DeepEquals, []string{"A", "B"}) c.Assert(ToStringSlicePreserveString(nil), qt.IsNil) - } func TestToString(t *testing.T) { @@ -34,5 +33,4 @@ func TestToString(t *testing.T) { c.Assert(ToString([]byte("Hugo")), qt.Equals, "Hugo") c.Assert(ToString(json.RawMessage("Hugo")), qt.Equals, "Hugo") - } diff --git a/compare/compare_strings_test.go b/compare/compare_strings_test.go index db286c2c5..9c4aa5868 100644 --- a/compare/compare_strings_test.go +++ b/compare/compare_strings_test.go @@ -61,5 +61,4 @@ func TestLexicographicSort(t *testing.T) { }) c.Assert(s, qt.DeepEquals, []string{"A", "b", "Ba", "ba", "ba", "Bz"}) - } diff --git a/config/commonConfig.go b/config/commonConfig.go index 9b4edfd90..260ebe73e 100644 --- a/config/commonConfig.go +++ b/config/commonConfig.go @@ -14,12 +14,12 @@ package config import ( - "github.com/pkg/errors" - "sort" "strings" "sync" + "github.com/pkg/errors" + "github.com/gohugoio/hugo/common/types" "github.com/gobwas/glob" @@ -88,7 +88,6 @@ type Sitemap struct { } func DecodeSitemap(prototype Sitemap, input map[string]interface{}) Sitemap { - for key, value := range input { switch key { case "changefreq": @@ -116,7 +115,6 @@ type Server struct { } func (s *Server) init() { - s.compiledInit.Do(func() { for _, h := range s.Headers { s.compiledHeaders = append(s.compiledHeaders, glob.MustCompile(h.For)) @@ -150,7 +148,6 @@ func (s *Server) MatchHeaders(pattern string) []types.KeyValueStr { }) return matches - } func (s *Server) MatchRedirect(pattern string) Redirect { @@ -176,7 +173,6 @@ func (s *Server) MatchRedirect(pattern string) Redirect { } return Redirect{} - } type Headers struct { diff --git a/config/commonConfig_test.go b/config/commonConfig_test.go index b8b6e6795..d4273277a 100644 --- a/config/commonConfig_test.go +++ b/config/commonConfig_test.go @@ -57,7 +57,6 @@ func TestBuild(t *testing.T) { c.Assert(b.UseResourceCache(herrors.ErrFeatureNotAvailable), qt.Equals, false) c.Assert(b.UseResourceCache(errors.New("err")), qt.Equals, false) c.Assert(b.UseResourceCache(nil), qt.Equals, false) - } func TestServer(t *testing.T) { @@ -98,7 +97,8 @@ status = 301 c.Assert(s.MatchHeaders("/foo.jpg"), qt.DeepEquals, []types.KeyValueStr{ {Key: "X-Content-Type-Options", Value: "nosniff"}, {Key: "X-Frame-Options", Value: "DENY"}, - {Key: "X-XSS-Protection", Value: "1; mode=block"}}) + {Key: "X-XSS-Protection", Value: "1; mode=block"}, + }) c.Assert(s.MatchRedirect("/foo/bar/baz"), qt.DeepEquals, Redirect{ From: "/foo/**", @@ -122,7 +122,8 @@ status = 301 c.Assert(s.MatchRedirect("/default/index.html"), qt.DeepEquals, Redirect{}) c.Assert(s.MatchRedirect("/default/"), qt.DeepEquals, Redirect{}) - for _, errorCase := range []string{`[[server.redirects]] + for _, errorCase := range []string{ + `[[server.redirects]] from = "/**" to = "/file" status = 301`, @@ -138,5 +139,4 @@ status = 301`, c.Assert(err, qt.Not(qt.IsNil)) } - } diff --git a/config/configLoader.go b/config/configLoader.go index 2e37a5b35..6d94f0b79 100644 --- a/config/configLoader.go +++ b/config/configLoader.go @@ -86,7 +86,6 @@ func readConfig(format metadecoders.Format, data []byte) (map[string]interface{} RenameKeys(m) return m, nil - } func loadConfigFromFile(fs afero.Fs, filename string) (map[string]interface{}, error) { diff --git a/config/privacy/privacyConfig_test.go b/config/privacy/privacyConfig_test.go index a750ba282..0fb599c0a 100644 --- a/config/privacy/privacyConfig_test.go +++ b/config/privacy/privacyConfig_test.go @@ -69,7 +69,6 @@ simple = true } c.Assert(got, qt.All(qt.Equals), true) - } func TestDecodeConfigFromTOMLCaseInsensitive(t *testing.T) { diff --git a/config/services/servicesConfig_test.go b/config/services/servicesConfig_test.go index ed3038159..6e979b999 100644 --- a/config/services/servicesConfig_test.go +++ b/config/services/servicesConfig_test.go @@ -65,5 +65,4 @@ func TestUseSettingsFromRootIfSet(t *testing.T) { c.Assert(config.Disqus.Shortname, qt.Equals, "root_short") c.Assert(config.GoogleAnalytics.ID, qt.Equals, "ga_root") - } diff --git a/create/content.go b/create/content.go index 13e668201..d1594a199 100644 --- a/create/content.go +++ b/create/content.go @@ -16,15 +16,14 @@ package create import ( "bytes" - - "github.com/pkg/errors" - "io" "os" "os/exec" "path/filepath" "strings" + "github.com/pkg/errors" + "github.com/gohugoio/hugo/hugofs/files" "github.com/gohugoio/hugo/hugofs" @@ -131,7 +130,6 @@ func newContentFromDir( sites *hugolib.HugoSites, targetFs afero.Fs, cm archetypeMap, name, targetPath string) error { - for _, f := range cm.otherFiles { meta := f.Meta() filename := meta.Path() @@ -196,11 +194,9 @@ func mapArcheTypeDir( ps *helpers.PathSpec, fs afero.Fs, archetypeDir string) (archetypeMap, error) { - var m archetypeMap walkFn := func(path string, fi hugofs.FileMetaInfo, err error) error { - if err != nil { return err } @@ -308,7 +304,6 @@ func resolveContentPath(sites *hugolib.HugoSites, fs afero.Fs, targetPath string } if siteContentDir == "" { - } if siteContentDir != "" { @@ -324,7 +319,6 @@ func resolveContentPath(sites *hugolib.HugoSites, fs afero.Fs, targetPath string } return s.PathSpec.AbsPathify(filepath.Join(contentDir, targetPath)), s } - } // FindArchetype takes a given kind/archetype of content and returns the path diff --git a/create/content_template_handler.go b/create/content_template_handler.go index 3a7007f1a..3e9701e4b 100644 --- a/create/content_template_handler.go +++ b/create/content_template_handler.go @@ -83,7 +83,6 @@ var ( ) func executeArcheTypeAsTemplate(s *hugolib.Site, name, kind, targetPath, archetypeFilename string) ([]byte, error) { - var ( archetypeContent []byte archetypeTemplate []byte @@ -145,5 +144,4 @@ func executeArcheTypeAsTemplate(s *hugolib.Site, name, kind, targetPath, archety archetypeContent = []byte(archetypeShortcodeReplacementsPost.Replace(buff.String())) return archetypeContent, nil - } diff --git a/create/content_test.go b/create/content_test.go index f43d3a5f4..37dbf98bd 100644 --- a/create/content_test.go +++ b/create/content_test.go @@ -14,6 +14,7 @@ package create_test import ( + "fmt" "os" "path/filepath" "strings" @@ -23,8 +24,6 @@ import ( "github.com/gohugoio/hugo/hugolib" - "fmt" - "github.com/gohugoio/hugo/hugofs" qt "github.com/frankban/quicktest" @@ -35,7 +34,6 @@ import ( ) func TestNewContent(t *testing.T) { - cases := []struct { kind string path string @@ -59,7 +57,8 @@ func TestNewContent(t *testing.T) { `title = "GO"`, "{{< myshortcode >}}", "{{% myshortcode %}}", - "{{* comment */>}}\n{{%/* comment */%}}"}}, // shortcodes + "{{* comment */>}}\n{{%/* comment */%}}", + }}, // shortcodes } for i, cas := range cases { @@ -140,7 +139,6 @@ i18n: {{ T "hugo" }} c.Assert(create.NewContent(h, "my-theme-bundle", "post/my-theme-post"), qt.IsNil) cContains(c, readFileFromFs(t, fs.Source, filepath.Join("content", "post/my-theme-post/index.md")), `File: index.md`, `Site Lang: en`, `Name: My Theme Post`, `i18n: Hugo Rocks!`) cContains(c, readFileFromFs(t, fs.Source, filepath.Join("content", "post/my-theme-post/resources/hugo1.json")), `hugo1: {{ printf "no template handling in here" }}`) - } func initFs(fs afero.Fs) error { @@ -248,7 +246,6 @@ func readFileFromFs(t *testing.T, fs afero.Fs, filename string) string { } func newTestCfg(c *qt.C, mm afero.Fs) (*viper.Viper, *hugofs.Fs) { - cfg := ` theme = "mytheme" @@ -281,5 +278,4 @@ other = "Hugo Rokkar!"`), 0755), qt.IsNil) c.Assert(err, qt.IsNil) return v, hugofs.NewFrom(mm, v) - } diff --git a/deploy/deploy.go b/deploy/deploy.go index 0c793bca0..1aaae5aa7 100644 --- a/deploy/deploy.go +++ b/deploy/deploy.go @@ -466,7 +466,7 @@ func (lf *localFile) MD5() []byte { // knownHiddenDirectory checks if the specified name is a well known // hidden directory. func knownHiddenDirectory(name string) bool { - var knownDirectories = []string{ + knownDirectories := []string{ ".well-known", } @@ -697,7 +697,6 @@ func findDiffs(localFiles map[string]*localFile, remoteFiles map[string]*blob.Li // // The subslices are sorted by Local.SlashPath. func applyOrdering(ordering []*regexp.Regexp, uploads []*fileToUpload) [][]*fileToUpload { - // Sort the whole slice by Local.SlashPath first. sort.Slice(uploads, func(i, j int) bool { return uploads[i].Local.SlashPath < uploads[j].Local.SlashPath }) diff --git a/deploy/deployConfig.go b/deploy/deployConfig.go index d4f78011e..443c5901a 100644 --- a/deploy/deployConfig.go +++ b/deploy/deployConfig.go @@ -112,7 +112,6 @@ func (m *matcher) Matches(path string) bool { // decode creates a config from a given Hugo configuration. func decodeConfig(cfg config.Provider) (deployConfig, error) { - var ( mediaTypesConfig []map[string]interface{} dcfg deployConfig diff --git a/deploy/deploy_test.go b/deploy/deploy_test.go index 987c472ca..264ca9f9e 100644 --- a/deploy/deploy_test.go +++ b/deploy/deploy_test.go @@ -211,7 +211,6 @@ func TestFindDiffs(t *testing.T) { } func TestWalkLocal(t *testing.T) { - tests := map[string]struct { Given []string Expect []string @@ -355,7 +354,10 @@ func TestLocalFile(t *testing.T) { MediaTypesConfig: []map[string]interface{}{ { "hugo/custom": map[string]interface{}{ - "suffixes": []string{"hugo"}}}}, + "suffixes": []string{"hugo"}, + }, + }, + }, WantContent: contentBytes, WantSize: contentLen, WantMD5: contentMD5[:], diff --git a/deps/deps.go b/deps/deps.go index f6b64c279..c2919c9c5 100644 --- a/deps/deps.go +++ b/deps/deps.go @@ -231,7 +231,6 @@ func New(cfg DepsCfg) (*Deps, error) { } ps, err := helpers.NewPathSpec(fs, cfg.Language, logger) - if err != nil { return nil, errors.Wrap(err, "create PathSpec") } @@ -347,7 +346,6 @@ func (d Deps) ForLanguage(cfg DepsCfg, onCreated func(d *Deps) error) (*Deps, er d.BuildStartListeners = &Listeners{} return &d, nil - } // DepsCfg contains configuration options that can be used to configure Hugo diff --git a/deps/deps_test.go b/deps/deps_test.go index 5c58ed7a3..d68276732 100644 --- a/deps/deps_test.go +++ b/deps/deps_test.go @@ -20,7 +20,6 @@ import ( ) func TestBuildFlags(t *testing.T) { - c := qt.New(t) var bf BuildState bf.Incr() @@ -28,5 +27,4 @@ func TestBuildFlags(t *testing.T) { bf.Incr() c.Assert(bf.Incr(), qt.Equals, 4) - } diff --git a/helpers/content.go b/helpers/content.go index c59e41a8c..5e56ad6bf 100644 --- a/helpers/content.go +++ b/helpers/content.go @@ -20,6 +20,7 @@ package helpers import ( "bytes" "html/template" + "strings" "unicode" "unicode/utf8" @@ -33,8 +34,6 @@ import ( bp "github.com/gohugoio/hugo/bufferpool" "github.com/gohugoio/hugo/config" - - "strings" ) // SummaryDivider denotes where content summarization should end. The default is "". @@ -66,7 +65,6 @@ type ContentSpec struct { // NewContentSpec returns a ContentSpec initialized // with the appropriate fields from the given config.Provider. func NewContentSpec(cfg config.Provider, logger loggers.Logger, contentFs afero.Fs) (*ContentSpec, error) { - spec := &ContentSpec{ summaryLength: cfg.GetInt("summaryLength"), BuildFuture: cfg.GetBool("buildFuture"), @@ -81,7 +79,6 @@ func NewContentSpec(cfg config.Provider, logger loggers.Logger, contentFs afero. ContentFs: contentFs, Logger: logger, }) - if err != nil { return nil, err } @@ -112,7 +109,6 @@ var stripHTMLReplacer = strings.NewReplacer("\n", " ", "
", "\n", "