36 lines
787 B
Go
36 lines
787 B
Go
package main
|
||
|
||
import (
|
||
"log"
|
||
"net/http"
|
||
"os"
|
||
|
||
"scout/internal/httpapi"
|
||
"scout/internal/registry"
|
||
)
|
||
|
||
func main() {
|
||
address := envOr("SCOUT_ADDR", ":8080")
|
||
dataDir := envOr("SCOUT_DATA_DIR", "data")
|
||
token := os.Getenv("SCOUT_DEVELOPER_TOKEN")
|
||
if token == "" {
|
||
log.Fatal("请设置 SCOUT_DEVELOPER_TOKEN 后再启动服务端")
|
||
}
|
||
store, err := registry.New(dataDir)
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
server := &httpapi.Server{Registry: store, DeveloperToken: token}
|
||
log.Printf("Scout 包服务端正在监听 %s,数据目录为 %s", address, dataDir)
|
||
if err := http.ListenAndServe(address, server.Handler()); err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
}
|
||
|
||
func envOr(name, fallback string) string {
|
||
if value := os.Getenv(name); value != "" {
|
||
return value
|
||
}
|
||
return fallback
|
||
}
|