Merge pull request #233 from Lysander66/feature-loadconf

[feat] 二次开发: 支持直接使用json字符串作为配置内容初始化ILalServer
pull/236/head
yoko 2 years ago committed by GitHub
commit e319e6fbf3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -11,7 +11,6 @@ package logic
import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
"strings"
@ -168,23 +167,18 @@ type CommonHttpAddrConfig struct {
HttpsKeyFile string `json:"https_key_file"`
}
func LoadConfAndInitLog(confFile string) *Config {
func LoadConfAndInitLog(rawContent []byte) *Config {
var config *Config
// 读取配置文件并解析原始内容
rawContent, err := ioutil.ReadFile(confFile)
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "read conf file failed. file=%s err=%+v", confFile, err)
base.OsExitAndWaitPressIfWindows(1)
}
if err = json.Unmarshal(rawContent, &config); err != nil {
_, _ = fmt.Fprintf(os.Stderr, "unmarshal conf file failed. file=%s err=%+v", confFile, err)
// 读取配置并解析原始内容
if err := json.Unmarshal(rawContent, &config); err != nil {
_, _ = fmt.Fprintf(os.Stderr, "unmarshal conf file failed. raw content=%s err=%+v", rawContent, err)
base.OsExitAndWaitPressIfWindows(1)
}
j, err := nazajson.New(rawContent)
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "nazajson unmarshal conf file failed. file=%s err=%+v", confFile, err)
_, _ = fmt.Fprintf(os.Stderr, "nazajson unmarshal conf file failed. raw content=%s err=%+v", rawContent, err)
base.OsExitAndWaitPressIfWindows(1)
}
@ -328,7 +322,7 @@ func LoadConfAndInitLog(confFile string) *Config {
tlines = append(tlines, strings.TrimSpace(l))
}
compactRawContent := strings.Join(tlines, " ")
Log.Infof("load conf file succ. filename=%s, raw content=%s parsed=%+v", confFile, compactRawContent, config)
Log.Infof("load conf succ. raw content=%s parsed=%+v", compactRawContent, config)
return config
}

@ -85,6 +85,9 @@ type Option struct {
//
ConfFilename string
// ConfRawContent 配置JSON格式
ConfRawContent []byte
// NotifyHandler
//
// 事件监听

@ -11,28 +11,22 @@ package logic
import (
"flag"
"fmt"
"io/ioutil"
"net/http"
_ "net/http/pprof"
"os"
"path/filepath"
"sync"
"time"
"github.com/q191201771/naza/pkg/nazalog"
"github.com/q191201771/naza/pkg/defertaskthread"
"github.com/q191201771/lal/pkg/hls"
"github.com/q191201771/lal/pkg/base"
"github.com/q191201771/lal/pkg/httpts"
"github.com/q191201771/lal/pkg/rtsp"
_ "net/http/pprof"
"github.com/q191201771/lal/pkg/hls"
"github.com/q191201771/lal/pkg/httpflv"
"github.com/q191201771/lal/pkg/httpts"
"github.com/q191201771/lal/pkg/rtmp"
"github.com/q191201771/lal/pkg/rtsp"
"github.com/q191201771/naza/pkg/defertaskthread"
"github.com/q191201771/naza/pkg/nazalog"
//"github.com/felixge/fgprof"
)
@ -68,6 +62,8 @@ func NewServerManager(modOption ...ModOption) *ServerManager {
fn(&sm.option)
}
rawContent := sm.option.ConfRawContent
if len(rawContent) == 0 {
confFile := sm.option.ConfFilename
// 运行参数中没有配置文件,尝试从几个默认位置读取
if confFile == "" {
@ -89,7 +85,14 @@ Doc: %s
base.OsExitAndWaitPressIfWindows(1)
}
}
sm.config = LoadConfAndInitLog(confFile)
var err error
rawContent, err = ioutil.ReadFile(confFile)
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "read conf file failed. file=%s err=%+v", confFile, err)
base.OsExitAndWaitPressIfWindows(1)
}
}
sm.config = LoadConfAndInitLog(rawContent)
base.LogoutStartInfo()
if sm.config.HlsConfig.Enable && sm.config.HlsConfig.UseMemoryAsDiskFlag {

Loading…
Cancel
Save