44import sys
55
66from handlers .c import CHandler
7- from handlers .python import PythonHandler , Python2Handler
7+ from handlers .cpp import CPPHandler
8+ from handlers .java import JavaHandler
9+ from handlers .python import Python2Handler , PythonHandler
810from handlers .shell import BashShellHandler , ShellHandler , ZshShellHandler
11+ from util import reverse_dict
912
10- handlers = {
11- "--bash" : BashShellHandler ,
12- "--c" : CHandler ,
13- "--python" : PythonHandler ,
14- "--py" : PythonHandler ,
15- "--py2" : Python2Handler ,
16- "--python2" : Python2Handler ,
17- "--sh" : ShellHandler ,
18- "--zsh" : ZshShellHandler ,
13+ handlers_unwrapped = {
14+ BashShellHandler : [ "--bash" ] ,
15+ CHandler : [ "--c" ] ,
16+ CPPHandler : [ "--cpp" , "--c++" , "--cplusplus" ] ,
17+ JavaHandler : [ "--java" ] ,
18+ PythonHandler : [ "--python" , "--python3" , "--py" , "--py3" ] ,
19+ Python2Handler : [ "--python2" , "--py2" ] ,
20+ ShellHandler : [ "--sh" ] ,
21+ ZshShellHandler : [ "--zsh" ]
1922}
23+ handlers = reverse_dict (handlers_unwrapped )
2024
2125
2226def main (args = None ):
@@ -35,13 +39,13 @@ def main(args=None):
3539 help = "Give the stored file the speified name (does not do anything without --keep)" ,
3640 default = "script" ,
3741 )
38- for argname , handler in handlers .items ():
42+ for handler , argnames in handlers_unwrapped .items ():
3943 parser .add_argument (
40- argname , action = "store_true" , default = None , help = handler .__doc__
44+ * argnames , action = "store_true" , default = None , help = handler .__doc__
4145 )
4246 ns = parser .parse_args (args )
4347 parsed_dict = {
44- argname .split ("-" )[- 1 ]: getattr (ns , argname .split ("-" )[- 1 ])
48+ argname .split ("-" )[- 1 ]: getattr (ns , argname .split ("-" )[- 1 ], None )
4549 for argname in handlers .keys ()
4650 }
4751 parse_count = [bool (val ) for name , val in parsed_dict .items ()].count (True )
0 commit comments