43 lines
940 B
Go
43 lines
940 B
Go
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
"somegit.dev/vikingowl/reddit-reader/internal/config"
|
|
grpcclient "somegit.dev/vikingowl/reddit-reader/internal/grpc/client"
|
|
"somegit.dev/vikingowl/reddit-reader/internal/tui"
|
|
)
|
|
|
|
var tuiCmd = &cobra.Command{
|
|
Use: "tui",
|
|
Short: "Connect to the daemon and launch the interactive interface",
|
|
RunE: runTUI,
|
|
}
|
|
|
|
func init() {
|
|
rootCmd.AddCommand(tuiCmd)
|
|
}
|
|
|
|
func runTUI(_ *cobra.Command, _ []string) error {
|
|
cfg, err := config.LoadFromFile(config.DefaultPath())
|
|
if err != nil {
|
|
return fmt.Errorf("load config (run 'reddit-reader setup' first): %w", err)
|
|
}
|
|
cfg.ApplyEnvOverrides()
|
|
|
|
socketPath := cfg.GRPC.Socket
|
|
if socketPath == "" {
|
|
socketPath = config.DefaultSocket()
|
|
}
|
|
|
|
client, err := grpcclient.Dial(socketPath)
|
|
if err != nil {
|
|
return fmt.Errorf("connect to daemon (is 'reddit-reader serve' running?): %w", err)
|
|
}
|
|
defer client.Close()
|
|
|
|
return tui.Run(client)
|
|
}
|