Mercurial > hg > truffle
diff mxtool/mx.py @ 9009:1eb16dbb31a7
changed 'mx javap' command to accept class name patterns instead of fully qualified class names
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 11 Apr 2013 21:38:09 +0200 |
parents | 7844a36d0216 |
children | 025448743177 |
line wrap: on
line diff
--- a/mxtool/mx.py Wed Apr 10 14:11:22 2013 +0200 +++ b/mxtool/mx.py Thu Apr 11 21:38:09 2013 +0200 @@ -3018,9 +3018,10 @@ if exists(tmpbase): shutil.rmtree(tmpbase) -def findclass(args): +def findclass(args, logToConsole=True): """find all classes matching a given substring""" + matches = [] for entry, filename in classpath_walk(includeBootClasspath=True): if filename.endswith('.class'): if isinstance(entry, zipfile.ZipFile): @@ -3030,20 +3031,19 @@ classname = classname[:-len('.class')] for a in args: if a in classname: - log(classname) + matches.append(classname) + if logToConsole: + log(classname) + return matches def javap(args): - """launch javap with a -classpath option denoting all available classes - - Run the JDK javap class file disassembler with the following prepended options: - - -private -verbose -classpath <path to project classes>""" + """disassemble classes matching given pattern with javap""" javap = java().javap if not exists(javap): abort('The javap executable does not exists: ' + javap) else: - run([javap, '-private', '-verbose', '-classpath', classpath()] + args) + run([javap, '-private', '-verbose', '-classpath', classpath()] + findclass(args, logToConsole=False)) def show_projects(args): """show all loaded projects""" @@ -3081,7 +3081,7 @@ 'ideinit': [ideinit, ''], 'archive': [archive, '[options]'], 'projectgraph': [projectgraph, ''], - 'javap': [javap, ''], + 'javap': [javap, '<class name patterns>'], 'javadoc': [javadoc, '[options]'], 'site': [site, '[options]'], 'netbeansinit': [netbeansinit, ''],