summaryrefslogtreecommitdiffstats
path: root/cmd/dns.go
diff options
context:
space:
mode:
authorsinner <[email protected]>2026-04-15 15:16:02 -0400
committersinner <[email protected]>2026-04-15 15:16:02 -0400
commita5f907854f29e1c267ad30d1dfe85c2c47f5ac48 (patch)
treebc8685c3b22e6d5d47702ba0607c694f938ba7fd /cmd/dns.go
parent8a1cf20dd5014ebe15ced77344902b79dcfa2e66 (diff)
downloaddborg-1.1.1.tar.gz
dborg-1.1.1.zip
feat: add stdin support and retry logic for all search commandsHEADv1.1.1v0.1.14master
Diffstat (limited to 'cmd/dns.go')
-rw-r--r--cmd/dns.go77
1 files changed, 36 insertions, 41 deletions
diff --git a/cmd/dns.go b/cmd/dns.go
index dda2ddd..5fda64a 100644
--- a/cmd/dns.go
+++ b/cmd/dns.go
@@ -20,7 +20,7 @@ var dnsTLDCmd = &cobra.Command{
Aliases: []string{"t"},
Short: "Check NXDOMAIN for custom term against all TLDs",
Long: "Streams NDJSON results checking each TLD. For NXDOMAIN domains, returns status. For existing domains, runs httpx to get page title and tech stack.",
- Args: cobra.ExactArgs(1),
+ Args: argsOrStdin(1),
RunE: runDNSTLDCheck,
}
@@ -29,12 +29,11 @@ var dnsSiteCmd = &cobra.Command{
Aliases: []string{"s"},
Short: "Check if a website URL has been reused",
Long: "Checks if a website URL has been reused across different domains",
- Args: cobra.ExactArgs(1),
+ Args: argsOrStdin(1),
RunE: runDNSSiteCheck,
}
func runDNSTLDCheck(cmd *cobra.Command, args []string) error {
- term := args[0]
showOnly, _ := cmd.Flags().GetString("show-only")
c, err := newUnauthenticatedClient()
@@ -42,58 +41,54 @@ func runDNSTLDCheck(cmd *cobra.Command, args []string) error {
return fmt.Errorf("failed to create client: %w", err)
}
- params := &models.DNSTLDParams{
- Term: term,
- ShowOnly: showOnly,
- }
-
- fmt.Printf("Checking TLDs for term: %s\n\n", term)
-
- err = c.CheckDNSTLDStream(params, func(result json.RawMessage) error {
- var domainResult models.DomainResult
- if err := json.Unmarshal(result, &domainResult); err != nil {
- return fmt.Errorf("failed to parse result: %w", err)
+ return forEachQuery(args, func(term string) error {
+ params := &models.DNSTLDParams{
+ Term: term,
+ ShowOnly: showOnly,
}
- output, err := formatter.FormatDNSResults(&domainResult, IsJSONOutput())
+ fmt.Printf("Checking TLDs for term: %s\n\n", term)
+
+ err := c.CheckDNSTLDStream(params, func(result json.RawMessage) error {
+ var domainResult models.DomainResult
+ if err := json.Unmarshal(result, &domainResult); err != nil {
+ return fmt.Errorf("failed to parse result: %w", err)
+ }
+ output, err := formatter.FormatDNSResults(&domainResult, IsJSONOutput())
+ if err != nil {
+ return err
+ }
+ printOutput(output)
+ return nil
+ })
if err != nil {
- return err
+ return fmt.Errorf("TLD check failed: %w", err)
}
- printOutput(output)
return nil
})
-
- if err != nil {
- return fmt.Errorf("TLD check failed: %w", err)
- }
-
- return nil
}
func runDNSSiteCheck(cmd *cobra.Command, args []string) error {
- siteURL := args[0]
-
c, err := newClient()
if err != nil {
return fmt.Errorf("failed to create client: %w", err)
}
- response, err := c.CheckDNSSite(siteURL)
- if err != nil {
- return fmt.Errorf("site check failed: %w", err)
- }
-
- if err := checkError(response.Error); err != nil {
- return err
- }
-
- output, err := formatter.FormatDNSSite(response, IsJSONOutput())
- if err != nil {
- return err
- }
-
- printOutput(output)
- return nil
+ return forEachQuery(args, func(siteURL string) error {
+ response, err := c.CheckDNSSite(siteURL)
+ if err != nil {
+ return fmt.Errorf("site check failed: %w", err)
+ }
+ if err := checkError(response.Error); err != nil {
+ return err
+ }
+ output, err := formatter.FormatDNSSite(response, IsJSONOutput())
+ if err != nil {
+ return err
+ }
+ printOutput(output)
+ return nil
+ })
}
func init() {