mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[update] Prevent cmd window popup on Windows (Fixes #1478)
This commit is contained in:
		| @@ -1,6 +1,8 @@ | |||||||
|  | import io | ||||||
| import json | import json | ||||||
| import traceback | import traceback | ||||||
| import hashlib | import hashlib | ||||||
|  | import subprocess | ||||||
| import sys | import sys | ||||||
| from zipimport import zipimporter | from zipimport import zipimporter | ||||||
|  |  | ||||||
| @@ -75,8 +77,9 @@ def update_self(to_screen, verbose): | |||||||
|         to_screen(u'ERROR: the versions file signature is invalid. Aborting.') |         to_screen(u'ERROR: the versions file signature is invalid. Aborting.') | ||||||
|         return |         return | ||||||
|  |  | ||||||
|     to_screen(u'Updating to version ' + versions_info['latest'] + '...') |     version_id = versions_info['latest'] | ||||||
|     version = versions_info['versions'][versions_info['latest']] |     to_screen(u'Updating to version ' + version_id + '...') | ||||||
|  |     version = versions_info['versions'][version_id] | ||||||
|  |  | ||||||
|     print_notes(to_screen, versions_info['versions']) |     print_notes(to_screen, versions_info['versions']) | ||||||
|  |  | ||||||
| @@ -122,16 +125,18 @@ def update_self(to_screen, verbose): | |||||||
|  |  | ||||||
|         try: |         try: | ||||||
|             bat = os.path.join(directory, 'youtube-dl-updater.bat') |             bat = os.path.join(directory, 'youtube-dl-updater.bat') | ||||||
|             b = open(bat, 'w') |             with io.open(bat, 'w') as batfile: | ||||||
|             b.write(""" |                 batfile.write(u""" | ||||||
| echo Updating youtube-dl... | @echo off | ||||||
|  | echo Waiting for file handle to be closed ... | ||||||
| ping 127.0.0.1 -n 5 -w 1000 > NUL | ping 127.0.0.1 -n 5 -w 1000 > NUL | ||||||
| move /Y "%s.new" "%s" | move /Y "%s.new" "%s" > NUL | ||||||
| del "%s" | echo Updated youtube-dl to version %s. | ||||||
|             \n""" %(exe, exe, bat)) | start /b "" cmd /c del "%%~f0"&exit /b" | ||||||
|             b.close() |                 \n""" % (exe, exe, version_id)) | ||||||
|  |  | ||||||
|             os.startfile(bat) |             subprocess.Popen([bat])  # Continues to run in the background | ||||||
|  |             return  # Do not show premature success messages | ||||||
|         except (IOError, OSError) as err: |         except (IOError, OSError) as err: | ||||||
|             if verbose: to_screen(compat_str(traceback.format_exc())) |             if verbose: to_screen(compat_str(traceback.format_exc())) | ||||||
|             to_screen(u'ERROR: unable to overwrite current version') |             to_screen(u'ERROR: unable to overwrite current version') | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister