diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-12-16 13:31:37 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-12-25 10:12:41 +0100 |
| commit | 257f4cb9050d29a38a992b814bd6e79e6f1bca99 (patch) | |
| tree | 4f52317a4eb614821de2b930282e03d9f117535d /pkg/tool/tool.go | |
| parent | 3bcdec13657598f6a6163c7ddecff58c2d3a2a71 (diff) | |
pkg/cmdprof: merge into pkg/tool
cmdprof functionality seems to fit well into pkg/tool.
Diffstat (limited to 'pkg/tool/tool.go')
| -rw-r--r-- | pkg/tool/tool.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/pkg/tool/tool.go b/pkg/tool/tool.go index bb1f436cc..690bfa4b8 100644 --- a/pkg/tool/tool.go +++ b/pkg/tool/tool.go @@ -5,10 +5,25 @@ package tool import ( + "flag" "fmt" "os" ) +// Init handles common tasks for command line tools: +// - invokes flag.Parse +// - adds support for optional flags (see OptionalFlags) +// - adds support for cpu/mem profiling (-cpuprofile/memprofile flags) +// Use as defer tool.Init()(). +func Init() func() { + flagCPUProfile := flag.String("cpuprofile", "", "write CPU profile to this file") + flagMEMProfile := flag.String("memprofile", "", "write memory profile to this file") + if err := ParseFlags(flag.CommandLine, os.Args[1:]); err != nil { + Fail(err) + } + return installProfiling(*flagCPUProfile, *flagMEMProfile) +} + func Failf(msg string, args ...interface{}) { fmt.Fprintf(os.Stderr, msg+"\n", args...) os.Exit(1) |
