...
1
16
17 package tables
18
19 import (
20 "encoding/json"
21 "io/ioutil"
22 )
23
24 type Definitions struct {
25 IsLabelArg map[string]bool
26 LabelDenylist map[string]bool
27 IsListArg map[string]bool
28 IsSortableListArg map[string]bool
29 SortableDenylist map[string]bool
30 SortableAllowlist map[string]bool
31 NamePriority map[string]int
32 StripLabelLeadingSlashes bool
33 ShortenAbsoluteLabelsToRelative bool
34 }
35
36
37 func ParseJSONDefinitions(file string) (Definitions, error) {
38 var definitions Definitions
39
40 data, err := ioutil.ReadFile(file)
41 if err != nil {
42 return definitions, err
43 }
44
45 err = json.Unmarshal(data, &definitions)
46 return definitions, err
47 }
48
49
50
51 func ParseAndUpdateJSONDefinitions(file string, merge bool) error {
52 definitions, err := ParseJSONDefinitions(file)
53 if err != nil {
54 return err
55 }
56
57 if merge {
58 MergeTables(definitions.IsLabelArg, definitions.LabelDenylist, definitions.IsListArg, definitions.IsSortableListArg, definitions.SortableDenylist, definitions.SortableAllowlist, definitions.NamePriority, definitions.StripLabelLeadingSlashes, definitions.ShortenAbsoluteLabelsToRelative)
59 } else {
60 OverrideTables(definitions.IsLabelArg, definitions.LabelDenylist, definitions.IsListArg, definitions.IsSortableListArg, definitions.SortableDenylist, definitions.SortableAllowlist, definitions.NamePriority, definitions.StripLabelLeadingSlashes, definitions.ShortenAbsoluteLabelsToRelative)
61 }
62 return nil
63 }
64
View as plain text