1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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
- }
- }
|