pgm/data/data.go
2020-10-24 23:12:10 -05:00

67 lines
1.5 KiB
Go

package data
import (
"fmt"
"github.com/spf13/viper"
"log"
"os"
"pgm/logger"
)
// Simple config file for connecting to databases.
type HostDetails struct {
Secret string `json:"secret"`
Hostname string `json:"hostname"`
DatabaseName string `json:"databaseName"`
Username string `json:"username"`
}
func ReadHosts() []string {
var pgee []string
var homeDir string
homeDir, err := os.UserHomeDir()
if err != nil {
log.Fatal(err)
}
file, err := os.Open(homeDir + "/.pgm/hosts")
if err != nil {
logged := logger.Logger("failed opening directory: %s" + err.Error())
if logged == true {
fmt.Println("failed to load hosts, failure was logged")
}
}
defer file.Close()
pgee, err = file.Readdirnames(0) // 0 to read all files and folders
if err != nil {
log.Fatal(err)
}
return pgee
}
// returns a value from the .pgm.yaml file
func ViperReturnKey(k string ) string {
var h string
var s string
h, err := os.UserHomeDir()
if err != nil {
logger.Logger("[ERROR] could not set home directory: " + err.Error())
os.Exit(0)
}
viper.SetConfigName("scr")
viper.SetConfigType("json")
viper.AddConfigPath(h + "/.pgm/scn/")
err = viper.ReadInConfig() // Find and read the config file
if err != nil { // Handle errors reading the config file
logger.Logger("[ERROR] failed to load viper config: " + err.Error())
fmt.Println("error occurred and was logged.")
os.Exit(1)
}
s = viper.GetString(k)
logger.Logger("[LOG] got value from .pgm.yaml: " + s )
return s
}