- Create wire.go with interface bindings (biz interfaces → data implementations) - Rewrite main.go to use Kratos config loading + Wire-generated initApp - Remove temporary deps.go pinning file - Wire generates complete dependency graph: config → data → biz → service → server → app
55 lines
883 B
Go
55 lines
883 B
Go
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)
|
|
}
|
|
}
|