statping/types/configs/file.go

73 lines
1.4 KiB
Go
Raw Normal View History

2020-03-04 10:29:00 +00:00
package configs
import (
"fmt"
"github.com/pkg/errors"
2020-03-09 18:17:55 +00:00
"github.com/statping/statping/utils"
2020-03-04 10:29:00 +00:00
"os"
"path/filepath"
)
var log = utils.Log
2020-03-09 15:15:15 +00:00
func ConnectConfigs(configs *DbConfig) error {
2020-03-04 14:20:47 +00:00
err := Connect(configs, true)
2020-03-04 10:29:00 +00:00
if err != nil {
return errors.Wrap(err, "error connecting to database")
}
if err := configs.Save(utils.Directory); err != nil {
return errors.Wrap(err, "error saving configuration")
}
return nil
}
func LoadConfigs() (*DbConfig, error) {
writeAble, err := utils.DirWritable(utils.Directory)
if err != nil {
return nil, err
}
if !writeAble {
return nil, errors.Errorf("Directory %s is not writable!", utils.Directory)
}
dbConn := utils.Getenv("DB_CONN", "").(string)
if dbConn != "" {
configs, err := loadConfigEnvs()
if err != nil {
2020-03-04 15:58:42 +00:00
return LoadConfigFile(utils.Directory)
2020-03-04 10:29:00 +00:00
}
return configs, nil
}
2020-03-04 15:58:42 +00:00
return LoadConfigFile(utils.Directory)
2020-03-04 10:29:00 +00:00
}
func findDbFile(configs *DbConfig) string {
if configs == nil {
return findSQLin(utils.Directory)
}
if configs.SqlFile != "" {
return configs.SqlFile
}
return utils.Directory + "/" + SqliteFilename
}
func findSQLin(path string) string {
filename := SqliteFilename
err := filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
if info.IsDir() {
return nil
}
if filepath.Ext(path) == ".db" {
fmt.Println("DB file is now: ", info.Name())
filename = info.Name()
}
return nil
})
if err != nil {
log.Error(err)
}
return filename
}