-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.go
More file actions
58 lines (47 loc) · 1.64 KB
/
main.go
File metadata and controls
58 lines (47 loc) · 1.64 KB
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
51
52
53
54
55
56
57
58
package main
import (
"flag"
"log"
"github.com/sadrishehu/schematic/schematic"
)
type YourEventTags struct {
EventName string `json:"event_name"`
EventVersion string `json:"event_version"`
EventID string `json:"event_id"`
}
type YourFieldStruct struct {
YourFieldString string `json:"your_field_string"`
YourFieldInt int `json:"your_field_int"`
}
type YourEventStruct struct {
Tags YourEventTags `json:"tags"`
YourFieldString string `json:"your_field_string"`
YourFieldInt int `json:"your_field_int"`
YourFieldFloat float64 `json:"your_field_float"`
YourFieldBool bool `json:"your_field_bool"`
YourFieldSlice []string `json:"your_field_slice"`
YourFieldStruct YourFieldStruct `json:"your_field_struct"`
YourFieldPtr *string `json:"your_field_ptr"`
YourFieldPtrSlice []*string `json:"your_field_ptr_slice"`
YourFieldPtrStruct *YourFieldStruct `json:"your_field_ptr_struct"`
}
var genSchema map[string]schematic.Schema = map[string]schematic.Schema{
"event.name": schematic.GenerateSchema(
YourEventStruct{},
"Cute Event Name",
"http://json-schema.org/draft-07/schema#",
),
}
func main() {
path := flag.String("path", "/tmp/schemas/", "enter full path where to save schemas")
help := flag.Bool("help", false, "print help/usage information")
flag.Parse()
if *help {
flag.PrintDefaults()
return
}
if err := schematic.BuildEvents(path, genSchema); err != nil {
log.Fatalf("there was an error during file writing. Error: %s", err)
}
log.Printf("Schemas generated succssfully, located at: %s", *path)
}