Skip to content

Commit 08b0993

Browse files
committed
Added variable/user expansion for additional parameters, see #123
1 parent 1ef2354 commit 08b0993

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

npbackup/core/runner.py

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -827,6 +827,11 @@ def _apply_config_to_restic_runner(self) -> bool:
827827
self.restic_runner.additional_parameters = self.repo_config.g(
828828
"backup_opts.additional_parameters"
829829
)
830+
try:
831+
self.restic_runner.additional_parameters = os.path.expanduser(self.restic_runner.additional_parameters)
832+
self.restic_runner.additional_parameters = os.path.expandvars(self.restic_runner.additional_parameters)
833+
except OSError:
834+
self.write_logs(f"Failed expansion for additional parameters: {self.restic_runner.additional_parameters}", level="error")
830835
except KeyError:
831836
pass
832837
except ValueError:
@@ -1189,9 +1194,21 @@ def backup(
11891194
except KeyError:
11901195
tags = None
11911196

1192-
additional_backup_only_parameters = self.repo_config.g(
1193-
"backup_opts.additional_backup_only_parameters"
1194-
)
1197+
additional_backup_only_parameters = None
1198+
try:
1199+
if self.repo_config.g("backup_opts.additional_backup_only_parameters"):
1200+
additional_backup_only_parameters = self.repo_config.g(
1201+
"backup_opts.additional_backup_only_parameters"
1202+
)
1203+
try:
1204+
additional_backup_only_parameters = os.path.expanduser(additional_backup_only_parameters)
1205+
additional_backup_only_parameters = os.path.expandvars(additional_backup_only_parameters)
1206+
except OSError:
1207+
self.write_logs(f"Failed expansion for additional backup parameters: {additional_backup_only_parameters}", level="error")
1208+
except KeyError:
1209+
pass
1210+
except ValueError:
1211+
self.write_logs("Bogus additional backup parameters given", level="warning")
11951212

11961213
if not force:
11971214
# Check if backup is required, no need to be verbose, but we'll make sure we don't get a json result here

0 commit comments

Comments
 (0)