| 
									
										
										
										
											2012-12-07 21:59:59 +01:00
										 |  |  | #!/usr/bin/env python | 
					
						
							| 
									
										
										
										
											2014-11-26 20:01:20 +01:00
										 |  |  | from __future__ import unicode_literals | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-07 21:59:59 +01:00
										 |  |  | import os | 
					
						
							|  |  |  | from os.path import dirname as dirn | 
					
						
							|  |  |  | import sys | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-15 21:30:24 +08:00
										 |  |  | sys.path.insert(0, dirn(dirn((os.path.abspath(__file__))))) | 
					
						
							| 
									
										
										
										
											2012-12-07 21:38:45 +01:00
										 |  |  | import youtube_dl | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-08 00:37:26 +01:00
										 |  |  | BASH_COMPLETION_FILE = "youtube-dl.bash-completion" | 
					
						
							| 
									
										
										
										
											2012-12-11 19:17:02 +01:00
										 |  |  | BASH_COMPLETION_TEMPLATE = "devscripts/bash-completion.in" | 
					
						
							| 
									
										
										
										
											2012-12-07 21:38:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-23 20:41:03 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-07 21:38:45 +01:00
										 |  |  | def build_completion(opt_parser): | 
					
						
							|  |  |  |     opts_flag = [] | 
					
						
							|  |  |  |     for group in opt_parser.option_groups: | 
					
						
							|  |  |  |         for option in group.option_list: | 
					
						
							| 
									
										
										
										
											2014-11-23 20:41:03 +01:00
										 |  |  |             # for every long flag | 
					
						
							| 
									
										
										
										
											2012-12-07 21:38:45 +01:00
										 |  |  |             opts_flag.append(option.get_opt_string()) | 
					
						
							|  |  |  |     with open(BASH_COMPLETION_TEMPLATE) as f: | 
					
						
							|  |  |  |         template = f.read() | 
					
						
							|  |  |  |     with open(BASH_COMPLETION_FILE, "w") as f: | 
					
						
							| 
									
										
										
										
											2014-11-23 20:41:03 +01:00
										 |  |  |         # just using the special char | 
					
						
							| 
									
										
										
										
											2012-12-07 21:38:45 +01:00
										 |  |  |         filled_template = template.replace("{{flags}}", " ".join(opts_flag)) | 
					
						
							|  |  |  |         f.write(filled_template) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | parser = youtube_dl.parseOpts()[0] | 
					
						
							|  |  |  | build_completion(parser) |