This commit is contained in:
2026-03-02 01:43:46 +07:00
parent 5604732fcb
commit 3b9c77b422
5 changed files with 55 additions and 50 deletions
+43
View File
@@ -1,10 +1,15 @@
package config
import (
"net"
"os"
"path/filepath"
)
const (
ClientPort = ":8100"
)
func GetStoryFilepath() string {
return getFilepath("STORY_FILENAME", "data/story/story.json")
}
@@ -13,6 +18,18 @@ func GetDBFilepath() string {
return getFilepath("DB_FILENAME", "data/db/store.db")
}
func GetHost() string {
host := os.Getenv("HOST")
if host != "" {
return host
}
ips, err := getLocalIPs()
if err != nil || len(ips) == 0 {
return "127.0.0.1" + ClientPort
}
return ips[0] + ClientPort
}
func getFilepath(env string, defaultFilepath string) string {
filepath := selectFilepath(env, defaultFilepath)
ensureDirExists(filepath)
@@ -34,3 +51,29 @@ func ensureDirExists(filePath string) error {
}
return os.MkdirAll(dir, 0755)
}
func getLocalIPs() ([]string, error) {
var ips []string
addrs, err := net.InterfaceAddrs()
if err != nil {
return nil, err
}
for _, addr := range addrs {
ipNet, ok := addr.(*net.IPNet)
if !ok {
continue
}
ip := ipNet.IP
if ip.IsLoopback() || ip.IsLinkLocalMulticast() || ip.IsLinkLocalUnicast() {
continue
}
if ipv4 := ip.To4(); ipv4 != nil {
ips = append(ips, ipv4.String())
}
}
return ips, nil
}