Skip to content

Commit af68e03

Browse files
author
shadowy-pycoder
committed
Small addings to the cli
1 parent bcf30ce commit af68e03

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

cmd/mshark/cli.go

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ import (
1616
"github.com/shadowy-pycoder/mshark/mpcapng"
1717
)
1818

19-
const usagePrefix = `
19+
const app string = "mshark"
20+
21+
const usagePrefix string = `
2022
______ __ __
2123
/ \ | \ | \
2224
______ ____ | $$$$$$\| $$____ ______ ______ | $$ __
@@ -38,6 +40,12 @@ Options:
3840

3941
var supportedFormats = []string{"txt", "pcap", "pcapng"}
4042

43+
var (
44+
_ ms.PacketWriter = &ms.Writer{}
45+
_ ms.PacketWriter = &mpcap.Writer{}
46+
_ ms.PacketWriter = &mpcapng.Writer{}
47+
)
48+
4149
type ExtFlag []string
4250

4351
func (f *ExtFlag) MarshalText() ([]byte, error) {
@@ -70,8 +78,8 @@ func displayInterfaces() error {
7078
return w.Flush()
7179
}
7280

73-
func createFile(ext string) (*os.File, error) {
74-
path := fmt.Sprintf("./mshark_%s.%s", time.Now().UTC().Format("20060102_150405"), ext)
81+
func createFile(app, ext string) (*os.File, error) {
82+
path := fmt.Sprintf("./%s_%s.%s", app, time.Now().UTC().Format("20060102_150405"), ext)
7583
f, err := os.OpenFile(filepath.FromSlash(path), os.O_CREATE|os.O_WRONLY, 0644)
7684
if err != nil {
7785
return nil, fmt.Errorf("failed to open file: %v", err)
@@ -82,7 +90,7 @@ func createFile(ext string) (*os.File, error) {
8290
func root(args []string) error {
8391
conf := ms.Config{}
8492

85-
flags := flag.NewFlagSet("mshark", flag.ExitOnError)
93+
flags := flag.NewFlagSet(app, flag.ExitOnError)
8694
iface := flags.String("i", "any", "The name of the network interface. Example: eth0")
8795
snaplen := flags.Int("s", 0, "The maximum length of each packet snapshot. Defaults to 65535.")
8896
flags.BoolFunc("p", `Promiscuous mode. This setting is ignored for "any" interface. Defaults to false.`, func(flagValue string) error {
@@ -94,7 +102,7 @@ func root(args []string) error {
94102
flags.StringVar(&conf.Expr, "e", "", `BPF filter expression. Example: "ip proto tcp"`)
95103
flags.BoolFunc("D", "Display list of interfaces and exit.", func(flagValue string) error {
96104
if err := displayInterfaces(); err != nil {
97-
fmt.Fprintf(os.Stderr, "mshark: %v\n", err)
105+
fmt.Fprintf(os.Stderr, "%s: %v\n", app, err)
98106
os.Exit(2)
99107
}
100108
os.Exit(0)
@@ -131,7 +139,7 @@ func root(args []string) error {
131139
for _, ext := range exts {
132140
switch ext {
133141
case "txt":
134-
f, err := createFile(ext)
142+
f, err := createFile(app, ext)
135143
if err != nil {
136144
return err
137145
}
@@ -142,7 +150,7 @@ func root(args []string) error {
142150
}
143151
pw = append(pw, w)
144152
case "pcap":
145-
f, err := createFile(ext)
153+
f, err := createFile(app, ext)
146154
if err != nil {
147155
return err
148156
}
@@ -153,13 +161,13 @@ func root(args []string) error {
153161
}
154162
pw = append(pw, w)
155163
case "pcapng":
156-
f, err := createFile(ext)
164+
f, err := createFile(app, ext)
157165
if err != nil {
158166
return err
159167
}
160168
defer f.Close()
161169
w := mpcapng.NewWriter(f)
162-
if err := w.WriteHeader("mshark", conf.Device, conf.Expr, conf.Snaplen); err != nil {
170+
if err := w.WriteHeader(app, conf.Device, conf.Expr, conf.Snaplen); err != nil {
163171
return err
164172
}
165173
pw = append(pw, w)

cmd/mshark/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77

88
func main() {
99
if err := root(os.Args[1:]); err != nil {
10-
fmt.Fprintf(os.Stderr, "mshark: %v\n", err)
10+
fmt.Fprintf(os.Stderr, "%s: %v\n", app, err)
1111
os.Exit(2)
1212
}
1313
}

0 commit comments

Comments
 (0)