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):
3539help = "Give the stored file the speified name (does not do anything without --keep)" ,
3640default = "script" ,
3741 )
38- for argname , handler in handlers .items ():
42+ for handler , argnames in handlers_unwrapped .items ():
3943parser .add_argument (
40- argname ,action = "store_true" ,default = None ,help = handler .__doc__
44+ * argnames ,action = "store_true" ,default = None ,help = handler .__doc__
4145 )
4246ns = parser .parse_args (args )
4347parsed_dict = {
44- argname .split ("-" )[- 1 ]:getattr (ns ,argname .split ("-" )[- 1 ])
48+ argname .split ("-" )[- 1 ]:getattr (ns ,argname .split ("-" )[- 1 ], None )
4549for argname in handlers .keys ()
4650 }
4751parse_count = [bool (val )for name ,val in parsed_dict .items ()].count (True )