Skip to content

Commit 3da7c1c

Browse files
committed
fix: correct generated rules structure for shared library
- Fix gendefaults to generate embedded ruleslib.Rules structure - Add required import for ruleslib package - Update google.com.hk rule
1 parent f89a531 commit 3da7c1c

File tree

2 files changed

+34
-8
lines changed

2 files changed

+34
-8
lines changed

internal/config/rules.toml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,7 @@
2525
# Example:
2626
# "*pixiv.net" = "pixivision.net"
2727
# "cdn.jsdelivr.net" = ""
28-
"*google.com" = "baidu.com"
29-
"*.google.com.hk" = ""
30-
"*youtube.com" = "baidu.com"
28+
"*.google.com.hk" = "g.cn"
3129

3230
# [Certificate Verification Exceptions]
3331
# Overrides the global 'check_hostname' setting for specific domains.

internal/config/tools/gendefaults/main.go

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ func run() error {
102102
buf.WriteString("// Code generated by go generate; DO NOT EDIT.\n")
103103
buf.WriteString("// This file contains pre-parsed default configuration to avoid runtime TOML parsing.\n\n")
104104
buf.WriteString("package config\n\n")
105+
buf.WriteString("import ruleslib \"github.com/xihale/snirect-shared/rules\"\n\n")
105106

106107
// Generate Config
107108
buf.WriteString("// PreparsedDefaultConfig contains the compile-time parsed default configuration.\n")
@@ -111,13 +112,40 @@ func run() error {
111112
}
112113
buf.WriteString("\n\n")
113114

114-
// Generate Rules
115+
// Generate Rules - embed in ruleslib.Rules
115116
buf.WriteString("// PreparsedDefaultRules contains the compile-time parsed default rules.\n")
116-
buf.WriteString("var PreparsedDefaultRules = ")
117-
if err := writeValue(&buf, reflect.ValueOf(rules), 0); err != nil {
118-
return fmt.Errorf("failed to generate rules: %w", err)
117+
buf.WriteString("var PreparsedDefaultRules = Rules{\n")
118+
buf.WriteString("\tRules: &ruleslib.Rules{\n")
119+
120+
// Write AlterHostname
121+
if rules.AlterHostname != nil && len(rules.AlterHostname) > 0 {
122+
buf.WriteString("\t\tAlterHostname: ")
123+
if err := writeValue(&buf, reflect.ValueOf(rules.AlterHostname), 2); err != nil {
124+
return fmt.Errorf("failed to generate AlterHostname: %w", err)
125+
}
126+
buf.WriteString(",\n")
127+
}
128+
129+
// Write CertVerify
130+
if rules.CertVerify != nil && len(rules.CertVerify) > 0 {
131+
buf.WriteString("\t\tCertVerify: ")
132+
if err := writeValue(&buf, reflect.ValueOf(rules.CertVerify), 2); err != nil {
133+
return fmt.Errorf("failed to generate CertVerify: %w", err)
134+
}
135+
buf.WriteString(",\n")
119136
}
120-
buf.WriteString("\n")
137+
138+
// Write Hosts
139+
if rules.Hosts != nil && len(rules.Hosts) > 0 {
140+
buf.WriteString("\t\tHosts: ")
141+
if err := writeValue(&buf, reflect.ValueOf(rules.Hosts), 2); err != nil {
142+
return fmt.Errorf("failed to generate Hosts: %w", err)
143+
}
144+
buf.WriteString(",\n")
145+
}
146+
147+
buf.WriteString("\t},\n")
148+
buf.WriteString("}\n")
121149

122150
// Format the generated code
123151
formatted, err := format.Source(buf.Bytes())

0 commit comments

Comments
 (0)