package main

import (
	"cicv-data-closedloop/common/config/c_log"
	"cicv-data-closedloop/common/handler/h_validate_request_header"
	"cicv-data-closedloop/common/util"
	"cicv-data-closedloop/tools/plugin-compile/package/config"
	"cicv-data-closedloop/tools/plugin-compile/package/handler"
	"net/http"
	"os"
)

func main() {
	{
		args := os.Args
		config.InitApplication(args[1])
		c_log.InitLog(config.ApplicationYaml.LogDir, config.ApplicationYaml.ServiceName)
		config.InitOss(false)
		config.InitOss2(false)
	}
	go func() {
		mux := http.NewServeMux()
		mux.Handle("/compile", h_validate_request_header.HeaderValidationMiddleware(&handler.CompileHandler{}))
		mux.Handle("/pji_compile", h_validate_request_header.HeaderValidationMiddleware(&handler.PjiCompileHandler{}))
		err := http.ListenAndServe(":"+util.ToString(config.ApplicationYaml.ServicePort), mux) // 这里是阻塞并监听HTTP端口
		if err != nil {
			c_log.GlobalLogger.Error("程序崩溃监听端口 " + util.ToString(config.ApplicationYaml.ServicePort) + " 失败。")
			os.Exit(-1)
		}
	}()
	c_log.GlobalLogger.Infof("启动编译服务成功,监听端口【%v】!", config.ApplicationYaml.ServicePort)
	select {}
}