bluesky viewer in the terminal
1package main
2
3import (
4 "context"
5 "os"
6
7 "github.com/charmbracelet/log"
8 _ "github.com/mattn/go-sqlite3"
9 "github.com/stormlightlabs/skypanel/cli/internal/registry"
10 "github.com/stormlightlabs/skypanel/cli/internal/ui"
11 "github.com/stormlightlabs/skypanel/cli/internal/utils"
12 "github.com/urfave/cli/v3"
13)
14
15var logger *log.Logger
16
17func init() {
18 utils.InitLogger(log.InfoLevel)
19 logger = utils.GetLogger()
20}
21
22func main() {
23 ctx := context.Background()
24 reg := registry.Get()
25
26 if err := reg.Init(ctx); err != nil {
27 logger.Fatalf("Failed to initialize registry %v", err)
28 }
29 defer reg.Close()
30
31 cli.HelpPrinter = ui.StyledHelpPrinter
32 cli.RootCommandHelpTemplate = ui.RootCommandHelpTemplate
33 cli.CommandHelpTemplate = ui.CommandHelpTemplate
34 cli.SubcommandHelpTemplate = ui.SubcommandHelpTemplate
35
36 app := &cli.Command{
37 Name: "skycli",
38 Usage: "A companion CLI tool for your Bluesky feed ecosystem",
39 Version: "0.1.0",
40 Commands: []*cli.Command{
41 SetupCommand(), LoginCommand(), StatusCommand(),
42 FetchCommand(), SearchCommand(), ListCommand(), ViewCommand(), ExportCommand(),
43 FollowersCommand(), FollowingCommand(),
44 },
45 }
46
47 if err := app.Run(ctx, os.Args); err != nil {
48 logger.Fatalf("Command failed with error: %v", err)
49 }
50}