File tree Expand file tree Collapse file tree 1 file changed +20
-1
lines changed Expand file tree Collapse file tree 1 file changed +20
-1
lines changed Original file line number Diff line number Diff line change 1111import pathlib
1212import shutil
1313import subprocess
14+ import platform
15+ import time
1416from python .runfiles import runfiles
1517
1618runfiles = runfiles .Create ()
4143 assert destdir .is_absolute (), "Provide `--build-file` to resolve destination directory"
4244script = runfiles .Rlocation (opts .pkg_install_script )
4345
46+ _WIN_FILE_IN_USE_ERROR_CODE = 32
47+
4448if destdir .exists () and opts .cleanup :
45- shutil .rmtree (destdir )
49+ if platform .system () == 'Windows' :
50+ # On Windows we might have virus scanner still looking at the path so
51+ # attempt removal a couple of times sleeping between each attempt.
52+ for retry_delay in [1 , 2 , 2 ]:
53+ try :
54+ shutil .rmtree (destdir )
55+ break
56+ except OSError as e :
57+ if e .winerror == _WIN_FILE_IN_USE_ERROR_CODE :
58+ time .sleep (retry_delay )
59+ else :
60+ raise
61+ else :
62+ shutil .rmtree (destdir )
63+ else :
64+ shutil .rmtree (destdir )
4665
4766destdir .mkdir (parents = True , exist_ok = True )
4867subprocess .run ([script , "--destdir" , destdir ], check = True )
You can’t perform that action at this time.
0 commit comments