mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-03 23:57:06 -05:00 
			
		
		
		
	[update] Prevent cmd window popup on Windows (Fixes #1478)
This commit is contained in:
		@@ -1,6 +1,8 @@
 | 
			
		||||
import io
 | 
			
		||||
import json
 | 
			
		||||
import traceback
 | 
			
		||||
import hashlib
 | 
			
		||||
import subprocess
 | 
			
		||||
import sys
 | 
			
		||||
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.')
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    to_screen(u'Updating to version ' + versions_info['latest'] + '...')
 | 
			
		||||
    version = versions_info['versions'][versions_info['latest']]
 | 
			
		||||
    version_id = versions_info['latest']
 | 
			
		||||
    to_screen(u'Updating to version ' + version_id + '...')
 | 
			
		||||
    version = versions_info['versions'][version_id]
 | 
			
		||||
 | 
			
		||||
    print_notes(to_screen, versions_info['versions'])
 | 
			
		||||
 | 
			
		||||
@@ -122,16 +125,18 @@ def update_self(to_screen, verbose):
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            bat = os.path.join(directory, 'youtube-dl-updater.bat')
 | 
			
		||||
            b = open(bat, 'w')
 | 
			
		||||
            b.write("""
 | 
			
		||||
echo Updating youtube-dl...
 | 
			
		||||
            with io.open(bat, 'w') as batfile:
 | 
			
		||||
                batfile.write(u"""
 | 
			
		||||
@echo off
 | 
			
		||||
echo Waiting for file handle to be closed ...
 | 
			
		||||
ping 127.0.0.1 -n 5 -w 1000 > NUL
 | 
			
		||||
move /Y "%s.new" "%s"
 | 
			
		||||
del "%s"
 | 
			
		||||
            \n""" %(exe, exe, bat))
 | 
			
		||||
            b.close()
 | 
			
		||||
move /Y "%s.new" "%s" > NUL
 | 
			
		||||
echo Updated youtube-dl to version %s.
 | 
			
		||||
start /b "" cmd /c del "%%~f0"&exit /b"
 | 
			
		||||
                \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:
 | 
			
		||||
            if verbose: to_screen(compat_str(traceback.format_exc()))
 | 
			
		||||
            to_screen(u'ERROR: unable to overwrite current version')
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user