diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2016-02-05 23:30:48 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2016-02-05 23:30:48 +0300 |
commit | 3b596b85d1c8de74c212a3402108bfa34014ac21 (patch) | |
tree | 77522a1b838b658f489ed067f53652bacae155d6 | |
parent | 87ca0d0cbea19dd2c0aac44dc2731e6247a82ece (diff) |
Add renderToMemory flag
Only useful for benchmark testing as the rendered content will be ... invisible.
-rw-r--r-- | commands/benchmark.go | 1 | ||||
-rw-r--r-- | commands/hugo.go | 15 |
2 files changed, 16 insertions, 0 deletions
diff --git a/commands/benchmark.go b/commands/benchmark.go index f2b7964c0..c90f64516 100644 --- a/commands/benchmark.go +++ b/commands/benchmark.go @@ -34,6 +34,7 @@ creating a benchmark.`, func init() { initHugoBuilderFlags(benchmarkCmd) + initBenchmarkBuildingFlags(benchmarkCmd) benchmarkCmd.Flags().StringVar(&cpuProfilefile, "cpuprofile", "", "path/filename for the CPU profile file") benchmarkCmd.Flags().StringVar(&memProfilefile, "memprofile", "", "path/filename for the memory profile file") diff --git a/commands/hugo.go b/commands/hugo.go index 591101da1..ed3285097 100644 --- a/commands/hugo.go +++ b/commands/hugo.go @@ -131,6 +131,7 @@ var ( logging bool noTimes bool pluralizeListTitles bool + renderToMemory bool // for benchmark testing preserveTaxonomyNames bool uglyURLs bool verbose bool @@ -223,6 +224,10 @@ func initHugoBuildCommonFlags(cmd *cobra.Command) { } +func initBenchmarkBuildingFlags(cmd *cobra.Command) { + cmd.Flags().BoolVar(&renderToMemory, "renderToMemory", false, "render to memory (only useful for benchmark testing)") +} + // init initializes flags. func init() { hugoCmd.PersistentFlags().BoolVarP(&verbose, "verbose", "v", false, "verbose output") @@ -231,6 +236,7 @@ func init() { hugoCmd.PersistentFlags().BoolVar(&verboseLog, "verboseLog", false, "verbose logging") initHugoBuilderFlags(hugoCmd) + initBenchmarkBuildingFlags(hugoCmd) hugoCmd.Flags().BoolVarP(&buildWatch, "watch", "w", false, "watch filesystem for changes and recreate as needed") hugoCmdV = hugoCmd @@ -460,6 +466,15 @@ func watchConfig() { func build(watches ...bool) error { + // Hugo writes the output to memory instead of the disk + // This is only used for benchmark testing. Cause the content is only visible + // in memory + if renderToMemory { + hugofs.DestinationFS = new(afero.MemMapFs) + // Rendering to memoryFS, publish to Root regardless of publishDir. + viper.Set("PublishDir", "/") + } + if err := copyStatic(); err != nil { return fmt.Errorf("Error copying static files to %s: %s", helpers.AbsPathify(viper.GetString("PublishDir")), err) } |