go-pingbot/config/toml.go

74 lines
1.1 KiB
Go
Raw Permalink Normal View History

2021-07-29 18:51:15 +00:00
package config
import (
"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
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
}
type mongoDBConfig struct {
Database string
Collection string
}
2021-08-29 10:14:35 +00:00
type optionsConfig struct {
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)
}
}
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
}