2024-09-10 22:59:28 +02:00
|
|
|
// Package pkg /
|
|
|
|
|
/*****
|
|
|
|
|
@author Jonas Kaninda
|
|
|
|
|
@license MIT License <https://opensource.org/licenses/MIT>
|
|
|
|
|
@Copyright © 2024 Jonas Kaninda
|
|
|
|
|
**/
|
2024-07-29 23:03:28 +02:00
|
|
|
package pkg
|
|
|
|
|
|
2024-08-29 21:49:35 +02:00
|
|
|
import (
|
|
|
|
|
"github.com/jkaninda/pg-bkup/utils"
|
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
|
"os"
|
|
|
|
|
)
|
|
|
|
|
|
2024-07-29 23:03:28 +02:00
|
|
|
type Config struct {
|
|
|
|
|
}
|
2024-08-29 21:49:35 +02:00
|
|
|
|
|
|
|
|
type dbConfig struct {
|
|
|
|
|
dbHost string
|
|
|
|
|
dbPort string
|
|
|
|
|
dbName string
|
|
|
|
|
dbUserName string
|
|
|
|
|
dbPassword string
|
|
|
|
|
}
|
2024-09-03 06:09:56 +02:00
|
|
|
type targetDbConfig struct {
|
|
|
|
|
targetDbHost string
|
|
|
|
|
targetDbPort string
|
|
|
|
|
targetDbUserName string
|
|
|
|
|
targetDbPassword string
|
|
|
|
|
targetDbName string
|
2024-08-29 21:49:35 +02:00
|
|
|
}
|
2024-09-10 22:59:28 +02:00
|
|
|
type TgConfig struct {
|
|
|
|
|
Token string
|
|
|
|
|
ChatId string
|
|
|
|
|
}
|
2024-08-29 21:49:35 +02:00
|
|
|
|
|
|
|
|
func getDbConfig(cmd *cobra.Command) *dbConfig {
|
|
|
|
|
//Set env
|
|
|
|
|
utils.GetEnv(cmd, "dbname", "DB_NAME")
|
|
|
|
|
dConf := dbConfig{}
|
|
|
|
|
dConf.dbHost = os.Getenv("DB_HOST")
|
|
|
|
|
dConf.dbPort = os.Getenv("DB_PORT")
|
|
|
|
|
dConf.dbName = os.Getenv("DB_NAME")
|
|
|
|
|
dConf.dbUserName = os.Getenv("DB_USERNAME")
|
|
|
|
|
dConf.dbPassword = os.Getenv("DB_PASSWORD")
|
|
|
|
|
|
|
|
|
|
err := utils.CheckEnvVars(dbHVars)
|
|
|
|
|
if err != nil {
|
|
|
|
|
utils.Error("Please make sure all required environment variables for database are set")
|
|
|
|
|
utils.Fatal("Error checking environment variables: %s", err)
|
|
|
|
|
}
|
|
|
|
|
return &dConf
|
|
|
|
|
}
|
2024-09-03 06:09:56 +02:00
|
|
|
func getTargetDbConfig() *targetDbConfig {
|
|
|
|
|
tdbConfig := targetDbConfig{}
|
|
|
|
|
tdbConfig.targetDbHost = os.Getenv("TARGET_DB_HOST")
|
|
|
|
|
tdbConfig.targetDbPort = os.Getenv("TARGET_DB_PORT")
|
|
|
|
|
tdbConfig.targetDbName = os.Getenv("TARGET_DB_NAME")
|
|
|
|
|
tdbConfig.targetDbUserName = os.Getenv("TARGET_DB_USERNAME")
|
|
|
|
|
tdbConfig.targetDbPassword = os.Getenv("TARGET_DB_PASSWORD")
|
2024-08-29 21:49:35 +02:00
|
|
|
|
2024-09-03 06:09:56 +02:00
|
|
|
err := utils.CheckEnvVars(tdbRVars)
|
2024-08-29 21:49:35 +02:00
|
|
|
if err != nil {
|
2024-09-03 06:09:56 +02:00
|
|
|
utils.Error("Please make sure all required environment variables for the target database are set")
|
|
|
|
|
utils.Fatal("Error checking target database environment variables: %s", err)
|
2024-08-29 21:49:35 +02:00
|
|
|
}
|
2024-09-03 06:09:56 +02:00
|
|
|
return &tdbConfig
|
2024-08-29 21:49:35 +02:00
|
|
|
}
|