support targeting specific date

This commit is contained in:
2026-02-09 01:18:16 -08:00
parent 136a090b6d
commit c31484f0cf
4 changed files with 51 additions and 5 deletions

View File

@@ -1,10 +1,13 @@
package main
import (
"fmt"
"log/slog"
"os"
"time"
"git.eeqj.de/sneak/bsdaily/internal/bsdaily"
"github.com/spf13/cobra"
)
func main() {
@@ -13,9 +16,33 @@ func main() {
}))
slog.SetDefault(logger)
if err := bsdaily.Run(); err != nil {
slog.Error("fatal error", "error", err)
var dateFlag string
rootCmd := &cobra.Command{
Use: "bsdaily",
Short: "Extract a single day's data from the latest daily snapshot",
SilenceUsage: true,
RunE: func(cmd *cobra.Command, args []string) error {
var targetDate *time.Time
if dateFlag != "" {
t, err := time.Parse("2006-01-02", dateFlag)
if err != nil {
return fmt.Errorf("invalid date %q (expected YYYY-MM-DD): %w", dateFlag, err)
}
targetDate = &t
}
if err := bsdaily.Run(targetDate); err != nil {
return err
}
slog.Info("completed successfully")
return nil
},
}
rootCmd.Flags().StringVarP(&dateFlag, "date", "d", "", "target date to extract (YYYY-MM-DD); defaults to snapshot date minus one day")
if err := rootCmd.Execute(); err != nil {
os.Exit(1)
}
slog.Info("completed successfully")
}