Files
GarminSync/cmd/root.go
2025-08-07 18:52:21 -07:00

43 lines
834 B
Go

package main
import (
"fmt"
"os"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)
var rootCmd = &cobra.Command{
Use: "garminsync",
Short: "GarminSync synchronizes Garmin Connect activities to FIT files",
Long: `GarminSync is a CLI application that:
1. Authenticates with Garmin Connect
2. Lists activities (all, missing, downloaded)
3. Downloads missing FIT files
4. Tracks download status in SQLite database`,
}
func Execute() {
if err := rootCmd.Execute(); err != nil {
fmt.Println(err)
os.Exit(1)
}
}
func main() {
Execute()
}
func init() {
// Initialize environment variables
viper.SetEnvPrefix("GARMINSYNC")
viper.BindEnv("email")
viper.BindEnv("password")
// Set default values
viper.SetDefault("db_path", "garmin.db")
viper.SetDefault("data_path", "/data")
viper.SetDefault("rate_limit", 2)
}