Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions cmd/activity.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,12 @@ var activityCmd = &cobra.Command{
Use: "activity",
Short: "Export daily activity (steps, distance, calories, HR zones)",
RunE: func(cmd *cobra.Command, args []string) error {
// Parse-level flag validation runs before any network call so an
// invalid --format exits non-zero hermetically (CONTRACT §4).
format, err := validateFormat(activityFormatFlag)
if err != nil {
return err
}
since, err := sinceOrDefault(activitySinceFlag, 30)
if err != nil {
return err
Expand Down Expand Up @@ -83,10 +89,6 @@ var activityCmd = &cobra.Command{

sort.Slice(all, func(i, j int) bool { return all[i].Date < all[j].Date })

format, err := validateFormat(activityFormatFlag)
if err != nil {
return err
}
switch format {
case "json":
return printJSON(all)
Expand Down
10 changes: 6 additions & 4 deletions cmd/intraday.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,12 @@ spo2_auto, steps and distance; native Withings trackers report steps and HR.

Default window is the last 24h — intraday is dense; wider ranges are slow.`,
RunE: func(cmd *cobra.Command, args []string) error {
// Parse-level flag validation runs before any network call so an
// invalid --format exits non-zero hermetically (CONTRACT §4).
format, err := validateFormat(intradayFormatFlag)
if err != nil {
return err
}
since, err := sinceOrDefault(intradaySinceFlag, 1)
if err != nil {
return err
Expand Down Expand Up @@ -124,10 +130,6 @@ Default window is the last 24h — intraday is dense; wider ranges are slow.`,

sort.Slice(all, func(i, j int) bool { return all[i].Timestamp < all[j].Timestamp })

format, err := validateFormat(intradayFormatFlag)
if err != nil {
return err
}
switch format {
case "json":
return printJSON(all)
Expand Down
10 changes: 6 additions & 4 deletions cmd/measurements.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,12 @@ var measurementsCmd = &cobra.Command{
Use: "measurements",
Short: "Export body measurements (weight, body fat, BP, etc.)",
RunE: func(cmd *cobra.Command, args []string) error {
// Parse-level flag validation runs before any network call so an
// invalid --format exits non-zero hermetically (CONTRACT §4).
format, err := validateFormat(measurementsFormatFlag)
if err != nil {
return err
}
since, err := sinceOrDefault(measurementsSinceFlag, 30)
if err != nil {
return err
Expand Down Expand Up @@ -131,10 +137,6 @@ var measurementsCmd = &cobra.Command{

sort.Slice(rows, func(i, j int) bool { return rows[i].Date.Before(rows[j].Date) })

format, err := validateFormat(measurementsFormatFlag)
if err != nil {
return err
}
switch format {
case "json":
return printJSON(rows)
Expand Down
10 changes: 6 additions & 4 deletions cmd/sleep.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,12 @@ var sleepCmd = &cobra.Command{
Use: "sleep",
Short: "Export nightly sleep summaries",
RunE: func(cmd *cobra.Command, args []string) error {
// Parse-level flag validation runs before any network call so an
// invalid --format exits non-zero hermetically (CONTRACT §4).
format, err := validateFormat(sleepFormatFlag)
if err != nil {
return err
}
since, err := sinceOrDefault(sleepSinceFlag, 30)
if err != nil {
return err
Expand Down Expand Up @@ -110,10 +116,6 @@ var sleepCmd = &cobra.Command{

sort.Slice(all, func(i, j int) bool { return all[i].StartDate < all[j].StartDate })

format, err := validateFormat(sleepFormatFlag)
if err != nil {
return err
}
switch format {
case "json":
return printJSON(all)
Expand Down
10 changes: 6 additions & 4 deletions cmd/workouts.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,12 @@ var workoutsCmd = &cobra.Command{
Use: "workouts",
Short: "Export workouts (runs, walks, bikes, etc.)",
RunE: func(cmd *cobra.Command, args []string) error {
// Parse-level flag validation runs before any network call so an
// invalid --format exits non-zero hermetically (CONTRACT §4).
format, err := validateFormat(workoutsFormatFlag)
if err != nil {
return err
}
since, err := sinceOrDefault(workoutsSinceFlag, 90)
if err != nil {
return err
Expand Down Expand Up @@ -131,10 +137,6 @@ var workoutsCmd = &cobra.Command{

sort.Slice(all, func(i, j int) bool { return all[i].StartDate < all[j].StartDate })

format, err := validateFormat(workoutsFormatFlag)
if err != nil {
return err
}
switch format {
case "json":
return printJSON(all)
Expand Down
Loading