mirror of
				https://code.hackerspace.pl/q3k/youtube-dl
				synced 2025-03-16 11:43:02 +00:00 
			
		
		
		
	 dcddc10a50
			
		
	
	
		dcddc10a50
		
	
	
	
	
		
			
			From now on, the line from __future__ import unicode_literals should be contained in every single Python file lest we run into any more 2.x/3.x issues. Going forward, we're likely to develop on 3.x only and would likely miss subtle bugs otherwise.
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env python
 | |
| from __future__ import unicode_literals
 | |
| 
 | |
| import os
 | |
| from os.path import dirname as dirn
 | |
| import sys
 | |
| 
 | |
| sys.path.append(dirn(dirn((os.path.abspath(__file__)))))
 | |
| import youtube_dl
 | |
| 
 | |
| ZSH_COMPLETION_FILE = "youtube-dl.zsh"
 | |
| ZSH_COMPLETION_TEMPLATE = "devscripts/zsh-completion.in"
 | |
| 
 | |
| 
 | |
| def build_completion(opt_parser):
 | |
|     opts = [opt for group in opt_parser.option_groups
 | |
|             for opt in group.option_list]
 | |
|     opts_file = [opt for opt in opts if opt.metavar == "FILE"]
 | |
|     opts_dir = [opt for opt in opts if opt.metavar == "DIR"]
 | |
| 
 | |
|     fileopts = []
 | |
|     for opt in opts_file:
 | |
|         if opt._short_opts:
 | |
|             fileopts.extend(opt._short_opts)
 | |
|         if opt._long_opts:
 | |
|             fileopts.extend(opt._long_opts)
 | |
| 
 | |
|     diropts = []
 | |
|     for opt in opts_dir:
 | |
|         if opt._short_opts:
 | |
|             diropts.extend(opt._short_opts)
 | |
|         if opt._long_opts:
 | |
|             diropts.extend(opt._long_opts)
 | |
| 
 | |
|     flags = [opt.get_opt_string() for opt in opts]
 | |
| 
 | |
|     with open(ZSH_COMPLETION_TEMPLATE) as f:
 | |
|         template = f.read()
 | |
| 
 | |
|     template = template.replace("{{fileopts}}", "|".join(fileopts))
 | |
|     template = template.replace("{{diropts}}", "|".join(diropts))
 | |
|     template = template.replace("{{flags}}", " ".join(flags))
 | |
| 
 | |
|     with open(ZSH_COMPLETION_FILE, "w") as f:
 | |
|         f.write(template)
 | |
| 
 | |
| parser = youtube_dl.parseOpts()[0]
 | |
| build_completion(parser)
 |