summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-02-21 10:25:39 +0200
committerPaul Buetow <paul@buetow.org>2026-02-21 10:25:39 +0200
commit32136b8cb18944157ff1f361bc0755f6b627fd47 (patch)
treee778661fb464bd53eb81263562bb8bd7b1aa79de /internal
parentb3ef6e1b8b8ad5e05d8fd78c9cb1379f56eef854 (diff)
Align Go project structure and add Mage targets
Amp-Thread-ID: https://ampcode.com/threads/T-019c7f3b-1326-767b-94d5-366b91eaf712 Co-authored-by: Amp <amp@ampcode.com>
Diffstat (limited to 'internal')
-rw-r--r--internal/flags/flags.go47
-rw-r--r--internal/flags/version.go18
2 files changed, 35 insertions, 30 deletions
diff --git a/internal/flags/flags.go b/internal/flags/flags.go
index 512697c..de0e74f 100644
--- a/internal/flags/flags.go
+++ b/internal/flags/flags.go
@@ -17,25 +17,25 @@ var (
once sync.Once
)
-var validCollapsedFields = []string{
- "path",
- "comm",
- "tracepoint",
- "pid",
- "tid",
- "flags",
-}
+const flamegraphToolDefault = "$HOME/git/FlameGraph/flamegraph.pl"
-var validCollapsedCounts = []string{
- "count",
- "duration",
- "durationToPrev",
- "bytes",
-}
+var (
+ validCollapsedFields = []string{
+ "path",
+ "comm",
+ "tracepoint",
+ "pid",
+ "tid",
+ "flags",
+ }
-func Get() Flags {
- return singleton
-}
+ validCollapsedCounts = []string{
+ "count",
+ "duration",
+ "durationToPrev",
+ "bytes",
+ }
+)
type Flags struct {
PidFilter int
@@ -63,6 +63,10 @@ type Flags struct {
FlamegraphTool string
}
+func Get() Flags {
+ return singleton
+}
+
func Parse() {
once.Do(func() {
parse()
@@ -70,8 +74,6 @@ func Parse() {
}
func parse() {
- version := flag.Bool("version", false, "Print version")
-
flag.IntVar(&singleton.PidFilter, "pid", -1, "Filter for processes ID")
flag.IntVar(&singleton.TidFilter, "tid", -1, "Filter for thread ID")
flag.IntVar(&singleton.EventMapSize, "mapSize", 4096*16, "BPF FD event ring buffer map size")
@@ -96,12 +98,11 @@ func parse() {
// https://github.com/brendangregg/FlameGraph
flag.StringVar(&singleton.FlamegraphTool, "flamegraphTool",
- os.Getenv("HOME")+"/git/FlameGraph/flamegraph.pl", "Path to the flamegraph tool (e.g. flamegraph.pl or inferno-flamegraph)")
+ "", "Path to the flamegraph tool (e.g. flamegraph.pl or inferno-flamegraph)")
flag.Parse()
- if *version {
- PrintVersion()
- os.Exit(0)
+ if singleton.FlamegraphTool == "" {
+ singleton.FlamegraphTool = flamegraphToolDefault
}
singleton.TracepointsToAttach = extractTracepointFlags(*tracepointsToAttach)
diff --git a/internal/flags/version.go b/internal/flags/version.go
index 1cb2dfd..7e6c50e 100644
--- a/internal/flags/version.go
+++ b/internal/flags/version.go
@@ -1,13 +1,17 @@
package flags
-const version = `v0.0.0`
+import "fmt"
-const asciiBanner = ` ___   _____    ___ _     _   
-|_ _| / / _ \  | _ (_)___| |_ 
- | | / / (_) | |   / / _ \  _|
-|___/_/ \___/  |_|_\_\___/\__| NG
- ` + version
+// Version is the current application version.
+const Version = "v0.0.0"
+const asciiBannerTemplate = ` ___ _____ ___ _ _
+|_ _| / / _ \ | _ (_)___| |_
+ | | / / (_) | | / / _ \ _|
+|___/_/ \___/ |_|_\_\___/\__| NG
+ %s`
+
+// PrintVersion prints the banner with the current version.
func PrintVersion() {
- println(asciiBanner)
+ fmt.Printf(asciiBannerTemplate+"\n", Version)
}