From 08b09932a42c8ead72da8ab0e4ec440ebb6983bf Mon Sep 17 00:00:00 2001 From: deajan Date: Wed, 12 Feb 2025 11:40:45 +0100 Subject: [PATCH] Added variable/user expansion for additional parameters, see #123 --- npbackup/core/runner.py | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/npbackup/core/runner.py b/npbackup/core/runner.py index 8319862..31667c2 100644 --- a/npbackup/core/runner.py +++ b/npbackup/core/runner.py @@ -827,6 +827,11 @@ class NPBackupRunner: self.restic_runner.additional_parameters = self.repo_config.g( "backup_opts.additional_parameters" ) + try: + self.restic_runner.additional_parameters = os.path.expanduser(self.restic_runner.additional_parameters) + self.restic_runner.additional_parameters = os.path.expandvars(self.restic_runner.additional_parameters) + except OSError: + self.write_logs(f"Failed expansion for additional parameters: {self.restic_runner.additional_parameters}", level="error") except KeyError: pass except ValueError: @@ -1189,9 +1194,21 @@ class NPBackupRunner: except KeyError: tags = None - additional_backup_only_parameters = self.repo_config.g( - "backup_opts.additional_backup_only_parameters" - ) + additional_backup_only_parameters = None + try: + if self.repo_config.g("backup_opts.additional_backup_only_parameters"): + additional_backup_only_parameters = self.repo_config.g( + "backup_opts.additional_backup_only_parameters" + ) + try: + additional_backup_only_parameters = os.path.expanduser(additional_backup_only_parameters) + additional_backup_only_parameters = os.path.expandvars(additional_backup_only_parameters) + except OSError: + self.write_logs(f"Failed expansion for additional backup parameters: {additional_backup_only_parameters}", level="error") + except KeyError: + pass + except ValueError: + self.write_logs("Bogus additional backup parameters given", level="warning") if not force: # Check if backup is required, no need to be verbose, but we'll make sure we don't get a json result here