feat: add Set default values from environment variables if not provided for multiple backup

This commit is contained in:
2025-01-25 09:12:28 +01:00
parent 3e8bfabc44
commit 4b93becdf2
2 changed files with 64 additions and 37 deletions

View File

@@ -30,6 +30,7 @@ import (
"github.com/spf13/cobra"
"os"
"strconv"
"strings"
)
type Database struct {
@@ -127,6 +128,11 @@ func initDbConfig(cmd *cobra.Command) *dbConfig {
}
func getDatabase(database Database) *dbConfig {
// Set default values from environment variables if not provided
database.User = getEnvOrDefault(database.User, "DB_USERNAME", database.Name, "")
database.Password = getEnvOrDefault(database.Password, "DB_PASSWORD", database.Name, "")
database.Host = getEnvOrDefault(database.Host, "DB_HOST", database.Name, "")
database.Port = getEnvOrDefault(database.Port, "DB_PORT", database.Name, "5432")
return &dbConfig{
dbHost: database.Host,
dbPort: database.Port,
@@ -136,6 +142,20 @@ func getDatabase(database Database) *dbConfig {
}
}
// Helper function to get environment variable or use a default value
func getEnvOrDefault(currentValue, envKey, suffix, defaultValue string) string {
if currentValue != "" {
return currentValue
}
if suffix != "" {
envSuffix := os.Getenv(fmt.Sprintf("%s_%s", envKey, strings.ToUpper(suffix)))
if envSuffix != "" {
return envSuffix
}
}
return utils.EnvWithDefault(envKey, defaultValue)
}
// loadSSHConfig loads the SSH configuration from environment variables
func loadSSHConfig() (*SSHConfig, error) {
utils.GetEnvVariable("SSH_HOST", "SSH_HOST_NAME")