61 lines
1.6 KiB
Go
61 lines
1.6 KiB
Go
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))
|
|
}
|