소스 검색

Merge pull request #7915 from ThomasWaldmann/fix-subcommand-env-1.2

create --*-from-command: run subcommands with a clean environment
TW 1 년 전
부모
커밋
4e349cf3fa
1개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  1. 4 2
      src/borg/archiver.py

+ 4 - 2
src/borg/archiver.py

@@ -533,7 +533,8 @@ class Archiver:
                 if not dry_run:
                 if not dry_run:
                     try:
                     try:
                         try:
                         try:
-                            proc = subprocess.Popen(args.paths, stdout=subprocess.PIPE, preexec_fn=ignore_sigint)
+                            env = prepare_subprocess_env(system=True)
+                            proc = subprocess.Popen(args.paths, stdout=subprocess.PIPE, env=env, preexec_fn=ignore_sigint)
                         except (FileNotFoundError, PermissionError) as e:
                         except (FileNotFoundError, PermissionError) as e:
                             self.print_error('Failed to execute command: %s', e)
                             self.print_error('Failed to execute command: %s', e)
                             return self.exit_code
                             return self.exit_code
@@ -552,7 +553,8 @@ class Archiver:
                 paths_sep = eval_escapes(args.paths_delimiter) if args.paths_delimiter is not None else '\n'
                 paths_sep = eval_escapes(args.paths_delimiter) if args.paths_delimiter is not None else '\n'
                 if args.paths_from_command:
                 if args.paths_from_command:
                     try:
                     try:
-                        proc = subprocess.Popen(args.paths, stdout=subprocess.PIPE, preexec_fn=ignore_sigint)
+                        env = prepare_subprocess_env(system=True)
+                        proc = subprocess.Popen(args.paths, stdout=subprocess.PIPE, env=env, preexec_fn=ignore_sigint)
                     except (FileNotFoundError, PermissionError) as e:
                     except (FileNotFoundError, PermissionError) as e:
                         self.print_error('Failed to execute command: %s', e)
                         self.print_error('Failed to execute command: %s', e)
                         return self.exit_code
                         return self.exit_code