/
t3
/
cli
Обзор
Документация
Войти
/
t3
/
cli
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
cmd/main.go
51 строка
1 KB
Ivan Shibkikh
s3 cache
05 июл 2026, 21:07
05 июл 2026, 21:07
b47210d
Код
Авторство
О чём код?
package main import ( "context" "flag" "fmt" "log/slog" "os" "os/signal" "syscall" "gitverse.ru/t3/cli/internal/agent" "gitverse.ru/t3/cli/internal/controller" "gitverse.ru/t3/cli/pkg/console/output" ) func main() { ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) defer cancel() slog.SetDefault(output.NewLogger(os.Stdout, slog.LevelDebug)) err := run(ctx) if err != nil { fmt.Fprintln(os.Stderr, "error:", err.Error()) os.Exit(1) } } func run(ctx context.Context) error { agentFlag := flag.String("agent", "", "address to listen") tokenFlag := flag.String("token", "", "optional agent token to private usage") metricsAddrFlag := flag.String("metrics-addr", "", "address for Prometheus metrics endpoint (disabled by default)") cacheDirFlag := flag.String("cache-dir", "", "persistent S3 cache directory (disabled by default)") cacheMaxSizeFlag := flag.Int64("cache-max-size", 0, "maximum cache size in bytes (required if --cache-dir set)") fileFlag := flag.String("f", "", "path to yml file") flag.Parse() if agentFlag != nil && *agentFlag != "" { ag := agent.NewAgent(ctx, *agentFlag, tokenFlag, *metricsAddrFlag, *cacheDirFlag, *cacheMaxSizeFlag) return ag.Run() } if fileFlag == nil || *fileFlag == "" { return fmt.Errorf("please specify path to yml file `t3 -f {path}`") } logger := output.NewLogger(os.Stdout, slog.LevelDebug) return controller.Run(ctx, logger, *fileFlag) }