-
Notifications
You must be signed in to change notification settings - Fork 0
/
dumper.go
50 lines (42 loc) · 906 Bytes
/
dumper.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package dumper
import (
"log"
"os"
)
// Dumper -
type Dumper struct {
Config *Config
File *os.File
}
// NewDumper -
func NewDumper(topics []string, fileName string, proto bool, json bool) *Dumper {
log.Println("Setup new Dumper...")
return &Dumper{
Config: NewConfig(topics, fileName, proto, json),
}
}
// Open -
func (d *Dumper) Open() error {
log.Println("Open Dumper...")
if d.Config.Proto {
f, err := os.OpenFile(d.Config.FileName+".proto-test", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
return err
}
d.File = f
}
if d.Config.JSON {
f, err := os.OpenFile(d.Config.FileName+".encoding-test", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
return err
}
d.File = f
}
return nil
}
// Write -
func (d *Dumper) Write(data []byte) error {
log.Println("Write message to dumper: %s", data)
_, err := d.File.Write(data)
return err
}