package main import ( "crypto/tls" "flag" "log" "net/http" apiservice_devices "waterservice/internal/apiservice/devices" apiservice_mode "waterservice/internal/apiservice/mode" apiservice_pv "waterservice/internal/apiservice/pv" apiservice_soil "waterservice/internal/apiservice/soil" apiservice_state "waterservice/internal/apiservice/state" "waterservice/internal/app/config" "waterservice/internal/app/scheduler" ) var ( logger log.Logger = *log.Default() ) func init() { logger.SetFlags(log.Llongfile | log.Ltime) } func main() { logger.Println("starting") var webui_path string var devices_path string var config_path string flag.StringVar(&webui_path, "w", "../webui", "Specify path to serve the web ui. Default is ./webui") flag.StringVar(&devices_path, "d", "../config/devices.json", "Specify path of devices defifintion file. Default is ../config/devices.json") flag.StringVar(&config_path, "c", "../config/config.json", "Specify path of config file. Default is ../config/config.json") flag.Parse() http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} http.Handle("/", http.FileServer(http.Dir(webui_path))) config.SetConfigFilePath(config_path) apiservice_devices.SetDevicesFilePath(devices_path) apiservice_devices.AddHandler() apiservice_mode.AddHandler() apiservice_state.AddHandler() apiservice_pv.AddHandler() apiservice_soil.AddHandler() apiservice_state.Start() apiservice_pv.Start() apiservice_soil.Start() scheduler.Start() port := ":5005" logger.Println("Server is running on port" + port) logger.Fatal(http.ListenAndServe(port, nil)) }