summaryrefslogtreecommitdiffstats
path: root/cmd/moon.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/moon.go
parent8a1cf20dd5014ebe15ced77344902b79dcfa2e66 (diff)
downloaddborg-a5f907854f29e1c267ad30d1dfe85c2c47f5ac48.tar.gz
dborg-a5f907854f29e1c267ad30d1dfe85c2c47f5ac48.zip
feat: add stdin support and retry logic for all search commandsHEADv1.1.1v0.1.14master
Diffstat (limited to 'cmd/moon.go')
-rw-r--r--cmd/moon.go68
1 files changed, 37 insertions, 31 deletions
diff --git a/cmd/moon.go b/cmd/moon.go
index 931f64c..f749435 100644
--- a/cmd/moon.go
+++ b/cmd/moon.go
@@ -13,7 +13,7 @@ var moonCmd = &cobra.Command{
Aliases: []string{"mn"},
Short: "Search moon logs",
Long: `Search moon logs with various filters. Requires admin API key.`,
- Args: cobra.ExactArgs(1),
+ Args: argsOrStdin(1),
RunE: runMoon,
}
@@ -36,40 +36,46 @@ func runMoon(cmd *cobra.Command, args []string) error {
return err
}
- params := &models.MoonParams{
- Query: args[0],
- }
- params.Filename, _ = cmd.Flags().GetString("filename")
- params.MaxHits, _ = cmd.Flags().GetInt("max_hits")
+ filename, _ := cmd.Flags().GetString("filename")
+ maxHits, _ := cmd.Flags().GetInt("max_hits")
sortBy, _ := cmd.Flags().GetString("sort_by")
if sortBy != "" && sortBy != "ingest_timestamp" && sortBy != "date_posted" {
return fmt.Errorf("invalid sort_by value: must be 'ingest_timestamp' or 'date_posted'")
}
- params.SortBy = sortBy
- params.IngestStartDate, _ = cmd.Flags().GetString("ingest_start_date")
- params.IngestEndDate, _ = cmd.Flags().GetString("ingest_end_date")
- params.PostedStartDate, _ = cmd.Flags().GetString("posted_start_date")
- params.PostedEndDate, _ = cmd.Flags().GetString("posted_end_date")
- params.Format, _ = cmd.Flags().GetString("format")
+ ingestStart, _ := cmd.Flags().GetString("ingest_start_date")
+ ingestEnd, _ := cmd.Flags().GetString("ingest_end_date")
+ postedStart, _ := cmd.Flags().GetString("posted_start_date")
+ postedEnd, _ := cmd.Flags().GetString("posted_end_date")
+ format, _ := cmd.Flags().GetString("format")
- response, err := c.SearchMoonLogs(params)
- if err != nil {
- return err
- }
-
- if err := checkError(response.Error); err != nil {
- return err
- }
-
- if params.Format != "json" {
- fmt.Println(response.Message)
+ return forEachQuery(args, func(query string) error {
+ params := &models.MoonParams{
+ Query: query,
+ Filename: filename,
+ MaxHits: maxHits,
+ SortBy: sortBy,
+ IngestStartDate: ingestStart,
+ IngestEndDate: ingestEnd,
+ PostedStartDate: postedStart,
+ PostedEndDate: postedEnd,
+ Format: format,
+ }
+ response, err := c.SearchMoonLogs(params)
+ if err != nil {
+ return err
+ }
+ if err := checkError(response.Error); err != nil {
+ return err
+ }
+ if params.Format != "json" {
+ fmt.Println(response.Message)
+ return nil
+ }
+ output, err := formatter.FormatMoonResults(response, IsJSONOutput())
+ if err != nil {
+ return err
+ }
+ printOutput(output)
return nil
- }
-
- output, err := formatter.FormatMoonResults(response, IsJSONOutput())
- if err != nil {
- return err
- }
- printOutput(output)
- return nil
+ })
}