mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[build] Improve release process (#880)
* Automate more of the release process by animelover1984, pukkandan - closes #823 * Fix sha256 by nihil-admirari - closes #385 * Bring back brew taps by nao20010128nao #865 * Provide `--onedir` zip for windows by pukkandan - Closes #1024, #661, #705 and #890 Authored by: pukkandan, animelover1984, nihil-admirari, nao20010128nao
This commit is contained in:
		| @@ -31,6 +31,18 @@ def rsa_verify(message, signature, key): | ||||
| ''' | ||||
|  | ||||
|  | ||||
| def detect_variant(): | ||||
|     if hasattr(sys, 'frozen') and getattr(sys, '_MEIPASS', None): | ||||
|         if sys._MEIPASS == os.path.dirname(sys.executable): | ||||
|             return 'dir' | ||||
|         return 'exe' | ||||
|     elif isinstance(globals().get('__loader__'), zipimporter): | ||||
|         return 'zip' | ||||
|     elif os.path.basename(sys.argv[0]) == '__main__.py': | ||||
|         return 'source' | ||||
|     return 'unknown' | ||||
|  | ||||
|  | ||||
| def update_self(to_screen, verbose, opener): | ||||
|     ''' Exists for backward compatibility. Use run_update(ydl) instead ''' | ||||
|  | ||||
| @@ -87,13 +99,14 @@ def run_update(ydl): | ||||
|                 h.update(mv[:n]) | ||||
|         return h.hexdigest() | ||||
|  | ||||
|     err = None | ||||
|     if isinstance(globals().get('__loader__'), zipimporter): | ||||
|         pass | ||||
|     elif hasattr(sys, 'frozen'): | ||||
|         pass | ||||
|     else: | ||||
|         err = 'It looks like you installed yt-dlp with a package manager, pip, setup.py or a tarball. Please use that to update' | ||||
|     ERRORS = { | ||||
|         'exe': None, | ||||
|         'zip': None, | ||||
|         'dir': 'Auto-update is not supported for unpackaged windows executable. Re-download the latest release', | ||||
|         'source': 'You cannot update when running from source code', | ||||
|         'unknown': 'It looks like you installed yt-dlp with a package manager, pip, setup.py or a tarball. Use that to update', | ||||
|     } | ||||
|     err = ERRORS.get(detect_variant(), ERRORS['unknown']) | ||||
|     if err: | ||||
|         return report_error(err, expected=True) | ||||
|  | ||||
| @@ -138,12 +151,7 @@ def run_update(ydl): | ||||
|         if not urlh: | ||||
|             return None | ||||
|         hash_data = ydl._opener.open(urlh).read().decode('utf-8') | ||||
|         if hash_data.startswith('version:'): | ||||
|             # Old colon-separated hash file | ||||
|             return dict(ln.split(':') for ln in hash_data.splitlines()).get(filename) | ||||
|         else: | ||||
|             # GNU-style hash file | ||||
|             return dict(ln.split()[::-1] for ln in hash_data.splitlines()).get(filename) | ||||
|         return dict(ln.split()[::-1] for ln in hash_data.splitlines()).get(filename) | ||||
|  | ||||
|     if not os.access(filename, os.W_OK): | ||||
|         return report_error('no write permissions on %s' % filename, expected=True) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 pukkandan
					pukkandan