diff --git a/cmd/itemize/main.go b/cmd/itemize/main.go index 970868f..2a74d03 100644 --- a/cmd/itemize/main.go +++ b/cmd/itemize/main.go @@ -125,4 +125,14 @@ func printUsage() { fmt.Println(" -force Force reprocess already processed orders") fmt.Println(" -verbose Verbose output") fmt.Println(" -order-id string Process only this specific order ID (limits blast radius)") + fmt.Println() + fmt.Println("Environment Variables:") + fmt.Println(" MONARCH_TOKEN Monarch Money API token (required)") + fmt.Println(" OPENAI_API_KEY OpenAI API key") + fmt.Println(" ANTHROPIC_API_KEY Anthropic Claude API key") + fmt.Println(" CATEGORIZER_PROVIDER Force backend: 'openai' or 'anthropic'") + fmt.Println() + fmt.Println("Provider-Specific Environment Variables:") + fmt.Println(" AMAZON_ACCOUNT_NAME Amazon browser profile name (optional)") + fmt.Println(" Run 'amazon-scraper --login --profile ' first") } diff --git a/go.mod b/go.mod index e70eb90..467af06 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/eshaffer321/monarchmoney-sync-backend go 1.25.11 require ( - github.com/eshaffer321/costco-go v0.3.10 + github.com/eshaffer321/costco-go v0.3.11 github.com/eshaffer321/monarchmoney-go v1.0.5 github.com/eshaffer321/walmart-client-go/v2 v2.0.1 github.com/go-chi/chi/v5 v5.2.5 diff --git a/go.sum b/go.sum index c05c435..fdff4f3 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/eshaffer321/costco-go v0.3.10 h1:Lp8ZUEuLQC3ciGHWWjiPxMOez+hJe9YZ2JmlHxeC/HI= -github.com/eshaffer321/costco-go v0.3.10/go.mod h1:ANJTHfRSPyot9cWKNlfs5qDKRKkA4tYORrorvWx/vbM= +github.com/eshaffer321/costco-go v0.3.11 h1:vOEXcSj/vGlwE/4AbXK3uUdXG7XYg1qfUPViujJRS7Q= +github.com/eshaffer321/costco-go v0.3.11/go.mod h1:ANJTHfRSPyot9cWKNlfs5qDKRKkA4tYORrorvWx/vbM= github.com/eshaffer321/monarchmoney-go v1.0.5 h1:V3iP0bvB1q3+m9Gkl6KBCFL44sNsiHDbTxSOU9fHZco= github.com/eshaffer321/monarchmoney-go v1.0.5/go.mod h1:ZKPCYT7NcsKGI+YpJ2EqPtfE3dKfuPbiTUrj6J84ot4= github.com/eshaffer321/walmart-client-go/v2 v2.0.1 h1:R8NFqKqfdri02Jhmr6jOMpCLAzjdiRbStLtjGKo6WaA= diff --git a/internal/cli/flags.go b/internal/cli/flags.go index da3207a..143803f 100644 --- a/internal/cli/flags.go +++ b/internal/cli/flags.go @@ -2,6 +2,8 @@ package cli import ( "flag" + "fmt" + "os" "github.com/eshaffer321/monarchmoney-sync-backend/internal/application/sync" ) @@ -25,6 +27,24 @@ func ParseSyncFlags() SyncFlags { flag.BoolVar(&flags.Force, "force", false, "Force reprocess already processed orders") flag.BoolVar(&flags.Verbose, "verbose", false, "Verbose output") flag.StringVar(&flags.OrderID, "order-id", "", "Process only this specific order ID (limits blast radius)") + + flag.Usage = func() { + fmt.Fprintln(os.Stderr, "Usage: itemize [flags]") + fmt.Fprintln(os.Stderr) + fmt.Fprintln(os.Stderr, "Sync Flags:") + flag.PrintDefaults() + fmt.Fprintln(os.Stderr) + fmt.Fprintln(os.Stderr, "Environment Variables:") + fmt.Fprintln(os.Stderr, " MONARCH_TOKEN Monarch Money API token (required)") + fmt.Fprintln(os.Stderr, " OPENAI_API_KEY OpenAI API key") + fmt.Fprintln(os.Stderr, " ANTHROPIC_API_KEY Anthropic Claude API key") + fmt.Fprintln(os.Stderr, " CATEGORIZER_PROVIDER Force backend: 'openai' or 'anthropic'") + fmt.Fprintln(os.Stderr) + fmt.Fprintln(os.Stderr, "Provider-Specific Environment Variables:") + fmt.Fprintln(os.Stderr, " AMAZON_ACCOUNT_NAME Amazon browser profile name (optional)") + fmt.Fprintln(os.Stderr, " Run 'amazon-scraper --login --profile ' first") + } + flag.Parse() return flags }