From fefcb2f558645428c6cbffde4853b90af5aab8af Mon Sep 17 00:00:00 2001 From: "Ciro S. Costa" Date: Mon, 19 Apr 2021 09:18:08 -0400 Subject: [PATCH] cmd: add hex-vis helps debugging all this byte stuffk Signed-off-by: Ciro S. Costa --- cmd/hex-vis/main.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 cmd/hex-vis/main.go diff --git a/cmd/hex-vis/main.go b/cmd/hex-vis/main.go new file mode 100644 index 0000000..a079a21 --- /dev/null +++ b/cmd/hex-vis/main.go @@ -0,0 +1,41 @@ +package main + +import ( + "encoding/binary" + "os" + + "github.com/davecgh/go-spew/spew" + "github.com/jessevdk/go-flags" +) + +var opts = struct { + Uint16 uint16 `long:"uint16"` + Uint32 uint32 `long:"uint32"` + String string `long:"string"` +}{} + +func main() { + parser := flags.NewParser(&opts, flags.Default) + + if _, err := parser.Parse(); err != nil { + os.Exit(1) + } + + var b []byte + + switch { + case opts.Uint16 != 0: + b = make([]byte, 2) + binary.LittleEndian.PutUint16(b, opts.Uint16) + case opts.Uint32 != 0: + b = make([]byte, 4) + binary.LittleEndian.PutUint32(b, opts.Uint32) + case len(opts.String) != 0: + b = []byte(opts.String) + default: + parser.WriteHelp(os.Stderr) + os.Exit(1) + } + + spew.Dump(b) +}