package main import ( "context" "fmt" "log/slog" "os" "git.loyso.art/frx/kurious/internal/infrastructure/interfaceadapters/courses/sravni" "github.com/teris-io/cli" ) const ( debugOptName = "verbose" jsonOptName = "json" ) var limitOption = cli.NewOption("limit", "Limits amount of items to return").WithType(cli.TypeInt) var offsetOption = cli.NewOption("offset", "Offsets items to return").WithType(cli.TypeInt) func makeLogger(options map[string]string) *slog.Logger { level := slog.LevelInfo if _, ok := options[debugOptName]; ok { level = slog.LevelDebug } opts := slog.HandlerOptions{ Level: level, } var h slog.Handler if _, ok := options[jsonOptName]; ok { h = slog.NewJSONHandler(os.Stdout, &opts) } else { h = slog.NewTextHandler(os.Stdout, &opts) } return slog.New(h) } func makeSravniClient(ctx context.Context, log *slog.Logger, options map[string]string) (sravni.Client, error) { _, isDebug := options[debugOptName] client, err := sravni.NewClient(ctx, log, isDebug) if err != nil { return nil, fmt.Errorf("making new client: %w", err) } return client, nil }