[update] Fix updater file removal on windows (#5970)

Reverts 2fb0f85868
Closes #5632
Authored by: Grub4K
This commit is contained in:
Simon Sawicki 2023-01-06 18:01:18 +01:00 committed by GitHub
parent d37422f1db
commit 5be214abed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -15,6 +15,7 @@ from .utils import (
Popen, Popen,
cached_method, cached_method,
deprecation_warning, deprecation_warning,
remove_end,
shell_quote, shell_quote,
system_identifier, system_identifier,
traverse_obj, traverse_obj,
@ -42,8 +43,7 @@ def _get_variant_and_executable_path():
# Ref: https://en.wikipedia.org/wiki/Uname#Examples # Ref: https://en.wikipedia.org/wiki/Uname#Examples
if machine[1:] in ('x86', 'x86_64', 'amd64', 'i386', 'i686'): if machine[1:] in ('x86', 'x86_64', 'amd64', 'i386', 'i686'):
machine = '_x86' if platform.architecture()[0][:2] == '32' else '' machine = '_x86' if platform.architecture()[0][:2] == '32' else ''
# NB: https://github.com/yt-dlp/yt-dlp/issues/5632 return f'{remove_end(sys.platform, "32")}{machine}_exe', path
return f'{sys.platform}{machine}_exe', path
path = os.path.dirname(__file__) path = os.path.dirname(__file__)
if isinstance(__loader__, zipimporter): if isinstance(__loader__, zipimporter):
@ -74,8 +74,8 @@ def current_git_head():
_FILE_SUFFIXES = { _FILE_SUFFIXES = {
'zip': '', 'zip': '',
'py2exe': '_min.exe', 'py2exe': '_min.exe',
'win32_exe': '.exe', 'win_exe': '.exe',
'win32_x86_exe': '_x86.exe', 'win_x86_exe': '_x86.exe',
'darwin_exe': '_macos', 'darwin_exe': '_macos',
'darwin_legacy_exe': '_macos_legacy', 'darwin_legacy_exe': '_macos_legacy',
'linux_exe': '_linux', 'linux_exe': '_linux',
@ -264,7 +264,8 @@ class Updater:
self._report_error('Unable to overwrite current version') self._report_error('Unable to overwrite current version')
return os.rename(old_filename, self.filename) return os.rename(old_filename, self.filename)
if detect_variant() in ('win32_exe', 'py2exe'): variant = detect_variant()
if variant.startswith('win') or variant == 'py2exe':
atexit.register(Popen, f'ping 127.0.0.1 -n 5 -w 1000 & del /F "{old_filename}"', atexit.register(Popen, f'ping 127.0.0.1 -n 5 -w 1000 & del /F "{old_filename}"',
shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
elif old_filename: elif old_filename: