package cmd import ( "fmt" "github.com/spf13/cobra" "rinne.dev/doh-resolver/app/func/hosts" "rinne.dev/doh-resolver/app/func/resolver" "rinne.dev/doh-resolver/app/func/writer" "rinne.dev/doh-resolver/pkg/config" ) // Run 运行 DoH 查询 var Run = &cobra.Command{ Use: "run", Short: "Run DoH query and save to file", Run: run, Args: cobra.NoArgs, } func run(cmd *cobra.Command, args []string) { // 获取需要查询的域名 domains := config.GetStringArray("domains") // DoH 查询 resData := make(map[string]string) for _, domain := range domains { ans, err := resolver.Resolve(domain) if err != nil { fmt.Println(err) return } resData[domain] = ans } // 生成 hosts 文件 hostsFile := hosts.GenerateHostsFile(resData) // 写入文件 err := writer.WriteFile(config.GetString("output"), hostsFile) if err != nil { fmt.Println(err) return } }