diff options
Diffstat (limited to 'pkgs/data/misc/sing-geosite/main.go')
-rw-r--r-- | pkgs/data/misc/sing-geosite/main.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/pkgs/data/misc/sing-geosite/main.go b/pkgs/data/misc/sing-geosite/main.go index d059d99ffe1eb..e6ca57275adbf 100644 --- a/pkgs/data/misc/sing-geosite/main.go +++ b/pkgs/data/misc/sing-geosite/main.go @@ -16,4 +16,37 @@ func main() { if err != nil { panic(err) } + + ruleSetOutput := "rule-set" + err = os.MkdirAll(ruleSetOutput, 0o755) + if err != nil { + panic(err) + } + for code, domains := range domainMap { + var headlessRule option.DefaultHeadlessRule + defaultRule := geosite.Compile(domains) + headlessRule.Domain = defaultRule.Domain + headlessRule.DomainSuffix = defaultRule.DomainSuffix + headlessRule.DomainKeyword = defaultRule.DomainKeyword + headlessRule.DomainRegex = defaultRule.DomainRegex + var plainRuleSet option.PlainRuleSet + plainRuleSet.Rules = []option.HeadlessRule{ + { + Type: C.RuleTypeDefault, + DefaultOptions: headlessRule, + }, + } + srsPath, _ := filepath.Abs(filepath.Join(ruleSetOutput, "geosite-"+code+".srs")) + os.Stderr.WriteString("write " + srsPath + "\n") + outputRuleSet, err := os.Create(srsPath) + if err != nil { + panic(err) + } + err = srs.Write(outputRuleSet, plainRuleSet) + if err != nil { + outputRuleSet.Close() + panic(err) + } + outputRuleSet.Close() + } } |