Loading pkgs/data/misc/sing-geosite/default.nix +1 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ buildGoModule { installPhase = '' runHook preInstall install -Dm644 geosite.db $out/share/sing-box/geosite.db install -Dm644 rule-set/* -t $out/share/sing-box/rule-set runHook postInstall ''; Loading pkgs/data/misc/sing-geosite/main.go +33 −0 Original line number Diff line number Diff line Loading @@ -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() } } Loading
pkgs/data/misc/sing-geosite/default.nix +1 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ buildGoModule { installPhase = '' runHook preInstall install -Dm644 geosite.db $out/share/sing-box/geosite.db install -Dm644 rule-set/* -t $out/share/sing-box/rule-set runHook postInstall ''; Loading
pkgs/data/misc/sing-geosite/main.go +33 −0 Original line number Diff line number Diff line Loading @@ -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() } }