aboutsummaryrefslogtreecommitdiff
path: root/cmd/parser.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/parser.go')
-rw-r--r--cmd/parser.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/cmd/parser.go b/cmd/parser.go
new file mode 100644
index 0000000..d03fa9c
--- /dev/null
+++ b/cmd/parser.go
@@ -0,0 +1,50 @@
1package main
2
3import (
4 "fmt"
5 "os"
6 "reflect"
7
8 "github.com/pektezol/bitreader"
9 "github.com/pektezol/demoparser/pkg/packets"
10)
11
12func main() {
13 if len(os.Args) != 2 {
14 panic("specify file in command line arguments")
15 }
16 files, err := os.ReadDir(os.Args[1])
17 if err != nil { // If it's not a directory
18 file, err := os.Open(os.Args[1])
19 if err != nil {
20 panic(err)
21 }
22 reader := bitreader.Reader(file, true)
23 demoParserHandler(reader)
24 defer file.Close()
25 }
26 for _, fileinfo := range files { // If it is a directory
27 file, err := os.Open(os.Args[1] + fileinfo.Name())
28 if err != nil {
29 panic(err)
30 }
31 reader := bitreader.Reader(file, true)
32 demoParserHandler(reader)
33 defer file.Close()
34 }
35 // fmt.Scanln()
36}
37
38func demoParserHandler(reader *bitreader.ReaderType) {
39 packets.ParseHeaders(reader)
40 for {
41 packet := packets.ParsePackets(reader)
42 if packet.PacketType == 7 {
43 break
44 }
45 // if packet.PacketType != 5 {
46 // continue
47 // }
48 fmt.Printf("[%d] %s (%d):\n\t%+v\n", packet.TickNumber, reflect.ValueOf(packet.Data).Type(), packet.PacketType, packet.Data)
49 }
50}