package main import ( "flag" "os" "rag/file-system/internal/conf" "github.com/go-kratos/kratos/v2/config" fileconfig "github.com/go-kratos/kratos/v2/config/file" "github.com/go-kratos/kratos/v2/log" ) var ( flagconf string ) func init() { flag.StringVar(&flagconf, "conf", "configs/config.yaml", "config path, eg: -conf config.yaml") } func main() { flag.Parse() logger := log.With(log.NewStdLogger(os.Stdout), "ts", log.DefaultTimestamp, "caller", log.DefaultCaller, "service.kind", "file-system", ) c := config.New( config.WithSource( fileconfig.NewSource(flagconf), ), ) if err := c.Load(); err != nil { panic(err) } var bc conf.Bootstrap if err := c.Scan(&bc); err != nil { panic(err) } app, cleanup, err := initApp(&bc, logger) if err != nil { panic(err) } defer cleanup() if err := app.Run(); err != nil { panic(err) } }