package feed import ( "fmt" "tangled.org/dhawos.dev/bskyfeedctl/config" "tangled.org/dhawos.dev/bskyfeedctl/feeds" "tangled.org/dhawos.dev/bskyfeedctl/indexer" "tangled.org/dhawos.dev/bskyfeedctl/server" "github.com/spf13/cobra" "github.com/spf13/viper" ) type cmdConfig struct { Server server.ServerConfig Feed feeds.FeedConfig Elasticsearch indexer.ElasticsearchConfig } var Cmd = &cobra.Command{ Use: "server", Short: "Starts the bluesky custom feed server", RunE: func(cmd *cobra.Command, args []string) error { var cmdConfig cmdConfig if err := config.Loader.Unmarshal(&cmdConfig, viper.DecodeHook(config.AtURIHook())); err != nil { return fmt.Errorf("config: unable to decode into struct: %w", err) } bfg, err := server.NewBlueskyFeedGenerator(cmdConfig.Server, cmdConfig.Feed, cmdConfig.Elasticsearch) if err != nil { return fmt.Errorf("initializing bluesky feed generator: %w", err) } return bfg.Start() }, }