38 lines
880 B
Go
38 lines
880 B
Go
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)
|
||
}
|
||
}
|