package main import ( "embed" "flag" "io/fs" "log" "net/http" ) //go:embed static var staticFS embed.FS func main() { baseDir := flag.String("dir", ".", "项目根目录(包含 configs/ logs/ stats/)") addr := flag.String("addr", "127.0.0.1:5757", "监听地址") password := flag.String("password", "", "访问密码(为空则不启用鉴权)") flag.Parse() engine, err := NewEngine(*baseDir) if err != nil { log.Fatalf("初始化失败: %v", err) } engine.LoadAll() engine.StartAll() sub, err := fs.Sub(staticFS, "static") if err != nil { log.Fatalf("读取内嵌静态资源失败: %v", err) } srv := NewServer(engine, sub, *password) log.Printf("Git Sync Web 已启动: http://%s(鉴权:%t)", *addr, *password != "") if err := http.ListenAndServe(*addr, srv); err != nil { log.Fatal(err) } }