// Package appmeta stores the small amount of per-app networking config // Skiff itself needs (IP, port, health check) that isn't already implied by // jail.conf/rc.conf - a flat file living with the app's own data, not a // separate control-plane database. package appmeta import ( "encoding/json" "os" ) type Meta struct { IP string `json:"ip"` Port int `json:"port"` HealthPath string `json:"health_path"` ServerName string `json:"server_name"` } func Write(path string, m Meta) error { b, err := json.MarshalIndent(m, "", " ") if err != nil { return err } return os.WriteFile(path, b, 0644) } func Read(path string) (Meta, error) { var m Meta b, err := os.ReadFile(path) if err != nil { return m, err } err = json.Unmarshal(b, &m) return m, err }