refactor: replace function params by config struct

This commit is contained in:
Jonas Kaninda
2024-09-29 20:08:36 +02:00
parent 247e90f73e
commit 76bbfa35c4
2 changed files with 9 additions and 10 deletions

View File

@@ -162,7 +162,7 @@ func localBackup(db *dbConfig, config *BackupConfig) {
BackupDatabase(db, config.backupFileName, disableCompression) BackupDatabase(db, config.backupFileName, disableCompression)
finalFileName := config.backupFileName finalFileName := config.backupFileName
if config.encryption { if config.encryption {
encryptBackup(config.backupFileName) encryptBackup(config.backupFileName, config.passphrase)
finalFileName = fmt.Sprintf("%s.%s", config.backupFileName, gpgExtension) finalFileName = fmt.Sprintf("%s.%s", config.backupFileName, gpgExtension)
} }
utils.Info("Backup name is %s", finalFileName) utils.Info("Backup name is %s", finalFileName)
@@ -185,7 +185,7 @@ func s3Backup(db *dbConfig, config *BackupConfig) {
BackupDatabase(db, config.backupFileName, disableCompression) BackupDatabase(db, config.backupFileName, disableCompression)
finalFileName := config.backupFileName finalFileName := config.backupFileName
if config.encryption { if config.encryption {
encryptBackup(config.backupFileName) encryptBackup(config.backupFileName, config.passphrase)
finalFileName = fmt.Sprintf("%s.%s", config.backupFileName, "gpg") finalFileName = fmt.Sprintf("%s.%s", config.backupFileName, "gpg")
} }
utils.Info("Uploading backup archive to remote storage S3 ... ") utils.Info("Uploading backup archive to remote storage S3 ... ")
@@ -223,7 +223,7 @@ func sshBackup(db *dbConfig, config *BackupConfig) {
BackupDatabase(db, config.backupFileName, disableCompression) BackupDatabase(db, config.backupFileName, disableCompression)
finalFileName := config.backupFileName finalFileName := config.backupFileName
if config.encryption { if config.encryption {
encryptBackup(config.backupFileName) encryptBackup(config.backupFileName, config.passphrase)
finalFileName = fmt.Sprintf("%s.%s", config.backupFileName, "gpg") finalFileName = fmt.Sprintf("%s.%s", config.backupFileName, "gpg")
} }
utils.Info("Uploading backup archive to remote storage ... ") utils.Info("Uploading backup archive to remote storage ... ")
@@ -254,9 +254,8 @@ func sshBackup(db *dbConfig, config *BackupConfig) {
} }
// encryptBackup encrypt backup // encryptBackup encrypt backup
func encryptBackup(backupFileName string) { func encryptBackup(backupFileName, passphrase string) {
gpgPassphrase := os.Getenv("GPG_PASSPHRASE") err := Encrypt(filepath.Join(tmpPath, backupFileName), passphrase)
err := Encrypt(filepath.Join(tmpPath, backupFileName), gpgPassphrase)
if err != nil { if err != nil {
utils.Fatal("Error during encrypting backup %s", err) utils.Fatal("Error during encrypting backup %s", err)
} }

View File

@@ -37,7 +37,7 @@ type BackupConfig struct {
prune bool prune bool
encryption bool encryption bool
remotePath string remotePath string
gpqPassphrase string passphrase string
storage string storage string
cronExpression string cronExpression string
} }
@@ -79,11 +79,11 @@ func initBackupConfig(cmd *cobra.Command) *BackupConfig {
prune, _ := cmd.Flags().GetBool("prune") prune, _ := cmd.Flags().GetBool("prune")
disableCompression, _ = cmd.Flags().GetBool("disable-compression") disableCompression, _ = cmd.Flags().GetBool("disable-compression")
_, _ = cmd.Flags().GetString("mode") _, _ = cmd.Flags().GetString("mode")
gpqPassphrase := os.Getenv("GPG_PASSPHRASE") passphrase := os.Getenv("GPG_PASSPHRASE")
_ = utils.GetEnv(cmd, "path", "AWS_S3_PATH") _ = utils.GetEnv(cmd, "path", "AWS_S3_PATH")
cronExpression := os.Getenv("BACKUP_CRON_EXPRESSION") cronExpression := os.Getenv("BACKUP_CRON_EXPRESSION")
if gpqPassphrase != "" { if passphrase != "" {
encryption = true encryption = true
} }
//Initialize backup configs //Initialize backup configs
@@ -94,7 +94,7 @@ func initBackupConfig(cmd *cobra.Command) *BackupConfig {
config.storage = storage config.storage = storage
config.encryption = encryption config.encryption = encryption
config.remotePath = remotePath config.remotePath = remotePath
config.gpqPassphrase = gpqPassphrase config.passphrase = passphrase
config.cronExpression = cronExpression config.cronExpression = cronExpression
return &config return &config
} }