diff options
| author | 世界 <[email protected]> | 2024-07-18 13:36:35 +0800 |
|---|---|---|
| committer | 世界 <[email protected]> | 2024-07-18 13:40:44 +0800 |
| commit | 9f8a5e7cba4f10cbb65ea2ba2ce81201bdb0595a (patch) | |
| tree | 307110cb845a8dc74ac8e17c5dc6c7efed63bade /main.go | |
| parent | c69c0c0cc82ae8433baa8efe3a83590b7d95c37a (diff) | |
Generate new rule-sets20240720181558
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 47 |
1 files changed, 37 insertions, 10 deletions
@@ -1,6 +1,7 @@ package main import ( + "bufio" "context" "crypto/sha256" "encoding/hex" @@ -282,7 +283,7 @@ func mergeTags(data map[string][]geosite.Item) { println("merged cn categories: " + strings.Join(cnCodeList, ",")) } -func generate(release *github.RepositoryRelease, output string, cnOutput string, ruleSetOutput string) error { +func generate(release *github.RepositoryRelease, output string, cnOutput string, ruleSetOutput string, ruleSetUnstableOutput string) error { vData, err := download(release) if err != nil { return err @@ -300,7 +301,12 @@ func generate(release *github.RepositoryRelease, output string, cnOutput string, return err } defer outputFile.Close() - err = geosite.Write(outputFile, domainMap) + writer := bufio.NewWriter(outputFile) + err = geosite.Write(writer, domainMap) + if err != nil { + return err + } + err = writer.Flush() if err != nil { return err } @@ -316,12 +322,19 @@ func generate(release *github.RepositoryRelease, output string, cnOutput string, return err } defer cnOutputFile.Close() - err = geosite.Write(cnOutputFile, cnDomainMap) + writer.Reset(cnOutputFile) + err = geosite.Write(writer, cnDomainMap) + if err != nil { + return err + } + err = writer.Flush() if err != nil { return err } os.RemoveAll(ruleSetOutput) + os.RemoveAll(ruleSetUnstableOutput) err = os.MkdirAll(ruleSetOutput, 0o755) + err = os.MkdirAll(ruleSetUnstableOutput, 0o755) if err != nil { return err } @@ -340,17 +353,30 @@ func generate(release *github.RepositoryRelease, output string, cnOutput string, }, } srsPath, _ := filepath.Abs(filepath.Join(ruleSetOutput, "geosite-"+code+".srs")) - //os.Stderr.WriteString("write " + srsPath + "\n") - outputRuleSet, err := os.Create(srsPath) + unstableSRSPath, _ := filepath.Abs(filepath.Join(ruleSetUnstableOutput, "geosite-"+code+".srs")) + // os.Stderr.WriteString("write " + srsPath + "\n") + var ( + outputRuleSet *os.File + outputRuleSetUnstable *os.File + ) + outputRuleSet, err = os.Create(srsPath) + if err != nil { + return err + } + err = srs.Write(outputRuleSet, plainRuleSet, false) + outputRuleSet.Close() if err != nil { return err } - err = srs.Write(outputRuleSet, plainRuleSet) + outputRuleSetUnstable, err = os.Create(unstableSRSPath) + if err != nil { + return err + } + err = srs.Write(outputRuleSetUnstable, plainRuleSet, true) + outputRuleSetUnstable.Close() if err != nil { - outputRuleSet.Close() return err } - outputRuleSet.Close() } return nil } @@ -359,7 +385,7 @@ func setActionOutput(name string, content string) { os.Stdout.WriteString("::set-output name=" + name + "::" + content + "\n") } -func release(source string, destination string, output string, cnOutput string, ruleSetOutput string) error { +func release(source string, destination string, output string, cnOutput string, ruleSetOutput string, ruleSetOutputUnstable string) error { sourceRelease, err := fetch(source) if err != nil { return err @@ -374,7 +400,7 @@ func release(source string, destination string, output string, cnOutput string, return nil } } - err = generate(sourceRelease, output, cnOutput, ruleSetOutput) + err = generate(sourceRelease, output, cnOutput, ruleSetOutput, ruleSetOutputUnstable) if err != nil { return err } @@ -389,6 +415,7 @@ func main() { "geosite.db", "geosite-cn.db", "rule-set", + "rule-set-unstable", ) if err != nil { log.Fatal(err) |
