2021-07-29 18:51:15 +00:00
|
|
|
package config
|
|
|
|
|
|
|
|
import (
|
2021-08-07 20:03:26 +00:00
|
|
|
"io"
|
|
|
|
"net/http"
|
|
|
|
"os"
|
2021-07-29 18:51:15 +00:00
|
|
|
"time"
|
|
|
|
|
|
|
|
"github.com/BurntSushi/toml"
|
2021-08-12 19:26:54 +00:00
|
|
|
"github.com/MedzikUser/go-utils/common"
|
2021-07-29 18:51:15 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
type tomlConfig struct {
|
|
|
|
HTTP httpConfig
|
|
|
|
Backend backendConfig
|
|
|
|
AutoUpdate autoUpdateConfig
|
2021-08-11 10:35:51 +00:00
|
|
|
MongoDB mongoDBConfig
|
2021-08-29 10:14:35 +00:00
|
|
|
Options optionsConfig
|
2021-07-29 18:51:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type httpConfig struct {
|
|
|
|
Enabled bool
|
|
|
|
Port int
|
|
|
|
}
|
|
|
|
|
|
|
|
type backendConfig struct {
|
|
|
|
Enabled bool
|
|
|
|
Ping time.Duration
|
|
|
|
}
|
|
|
|
|
|
|
|
type autoUpdateConfig struct {
|
|
|
|
Enabled bool
|
|
|
|
Check time.Duration
|
|
|
|
}
|
|
|
|
|
2021-08-11 10:35:51 +00:00
|
|
|
type mongoDBConfig struct {
|
|
|
|
Database string
|
|
|
|
Collection string
|
|
|
|
}
|
|
|
|
|
2021-08-29 10:14:35 +00:00
|
|
|
type optionsConfig struct {
|
2021-08-30 13:41:06 +00:00
|
|
|
Stop_After_Ping bool
|
|
|
|
Stop_After_Ping_Timeout time.Duration
|
2021-08-29 10:14:35 +00:00
|
|
|
}
|
|
|
|
|
2021-07-29 18:51:15 +00:00
|
|
|
var Toml tomlConfig
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
_, err := toml.DecodeFile("./config.toml", &Toml)
|
|
|
|
|
2021-11-10 13:38:54 +00:00
|
|
|
if err != nil {
|
|
|
|
common.Log.Error("decode toml config: ", err)
|
2021-08-07 20:03:26 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func DownloadFile(filepath string, url string) error {
|
|
|
|
resp, err := http.Get(url)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
defer resp.Body.Close()
|
|
|
|
|
|
|
|
// Create the file
|
|
|
|
out, err := os.Create(filepath)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
defer out.Close()
|
|
|
|
|
|
|
|
// Write the body to file
|
|
|
|
_, err = io.Copy(out, resp.Body)
|
|
|
|
return err
|
2021-07-29 18:51:15 +00:00
|
|
|
}
|