MCPcopy Create free account
hub / github.com/TheThingsNetwork/lorawan-stack / main

Function main

tools/generate_event_data.go:37–87  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

35var json = jsonpb.TTN()
36
37func main() {
38 messagesFile := "events.json"
39 if len(os.Args) == 2 {
40 messagesFile = os.Args[1]
41 }
42 f, err := os.OpenFile(messagesFile, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0o644)
43 if err != nil {
44 log.Fatal(err)
45 }
46 defer func() {
47 if err := f.Close(); err != nil {
48 log.Fatal(err)
49 }
50 }()
51 enc := streamPool.BorrowStream(f)
52 defer func() {
53 enc.Flush()
54 streamPool.ReturnStream(enc)
55 }()
56 enc.WriteObjectStart()
57 for i, e := range events.All().Definitions() {
58 if i > 0 {
59 enc.WriteMore()
60 }
61 enc.WriteObjectField(e.Name())
62 enc.WriteObjectStart()
63
64 enc.WriteObjectField("name")
65 enc.WriteString(e.Name())
66
67 enc.WriteMore()
68
69 enc.WriteObjectField("description")
70 enc.WriteString(e.Description())
71
72 if e.DataType() != nil {
73 enc.WriteMore()
74
75 enc.WriteObjectField("data")
76
77 raw, err := json.Marshal(e.DataType())
78 if err != nil {
79 log.Fatal(err)
80 }
81 enc.WriteVal(jsoniter.RawMessage(raw))
82 }
83
84 enc.WriteObjectEnd()
85 }
86 enc.WriteObjectEnd()
87}

Callers

nothing calls this directly

Calls 8

AllFunction · 0.92
FatalMethod · 0.65
CloseMethod · 0.65
NameMethod · 0.65
DescriptionMethod · 0.65
DataTypeMethod · 0.65
MarshalMethod · 0.65
DefinitionsMethod · 0.45

Tested by

no test coverage detected