package main import ( "fmt" "os" "strings" "gitlab.com/ics_cinnamon/voicegateway/icsconf" "gitlab.com/ics_cinnamon/voicegateway/icserror" "gitlab.com/ics_cinnamon/voicegateway/icslog" "gitlab.com/ics_cinnamon/voicegateway/icsutil" ) func main() { if icsutil.CheckPID() { fmt.Println("VoiceGateway Already Running. Terminating...") os.Exit(0) } //get Voice Gateway home dir isStop := false var homeDir string for _, e := range os.Environ() { s := strings.SplitN(e, "=", 2) if strings.Compare(s[0], "ICSVSIM_ROOT") == 0 { homeDir = s[1] //service.SetHomeDir(s[1]) isStop = true break } } if !isStop { icserror.ICSERRNotFoundHome.PrintWithCaller(1) return } //configuration configFile := fmt.Sprintf("%s/config/icsvsim.xml", homeDir) conf, confErr := icsconf.OpenConfig(configFile, homeDir) if confErr != nil { confErr.PrintWithCaller(0) fmt.Println(confErr.GetError()) return } icsLog, lerr := icslog.NewIcsLog( &conf.LogConfig, icslog.GetLogLevelID(conf.LogConfig.Level), icslog.GetLogOutputID(conf.LogConfig.Output), conf.LogConfig.Path, conf.LogConfig.Disklimit, ) if lerr != nil { lerr.PrintWithCaller(0) } icsLog.Print(icslog.LOG_LEVEL_INFO, -1, "Started VoiceGateway Loader") //deamonize pid, derr := icsutil.DeamonizeProcessCheck() if derr != nil { icserror.ICSERRDeamonize.SetError(derr) icsLog.Printf(icslog.LOG_LEVEL_ERROR, -1, "VoiceGateway : %s", icserror.ICSERRDeamonize.GetError()) os.Exit(0) } icsLog.Printf(icslog.LOG_LEVEL_INFO, -1, "Loaded VoiceGateway[%d]", pid) }