diff --git a/cmd/bolt/bench.go b/cmd/bolt/bench.go index 91af960..3ade8b8 100644 --- a/cmd/bolt/bench.go +++ b/cmd/bolt/bench.go @@ -31,8 +31,11 @@ func Bench(options *BenchOptions) { fatal("number of iterations must be divisible by the batch size") } - // Find temporary location. - path := tempfile() + // Generate temp path if one is not passed in. + path := options.Path + if path == "" { + path = tempfile() + } if options.Clean { defer os.Remove(path) @@ -368,6 +371,7 @@ type BenchOptions struct { FillPercent float64 NoSync bool Clean bool + Path string } // BenchResults represents the performance results of the benchmark. diff --git a/cmd/bolt/main.go b/cmd/bolt/main.go index 183d1f2..0372e19 100644 --- a/cmd/bolt/main.go +++ b/cmd/bolt/main.go @@ -99,6 +99,7 @@ func NewApp() *cli.App { &cli.Float64Flag{Name: "fill-percent", Value: bolt.DefaultFillPercent, Usage: "Fill percentage"}, &cli.BoolFlag{Name: "no-sync", Usage: "Skip fsync on every commit"}, &cli.BoolFlag{Name: "work", Usage: "Print the temp db and do not delete on exit"}, + &cli.StringFlag{Name: "path", Usage: "Path to database to use"}, }, Action: func(c *cli.Context) { statsInterval, err := time.ParseDuration(c.String("stats-interval")) @@ -121,6 +122,7 @@ func NewApp() *cli.App { FillPercent: c.Float64("fill-percent"), NoSync: c.Bool("no-sync"), Clean: !c.Bool("work"), + Path: c.String("path"), }) }, }}