> I propose a Bash auto-completion script for the `jcmd` tool. It will simplify > the most tedious part of `jcmd` tool usage -selecting <PID|main-class> and > the command name. > > To determine auto-completion candidates, the script makes intermediate calls > to `jcmd` and then parses the output: > * `jcmd -l` to retrieve the list of running JVM processes; > * `jcmd <PID> help` to get the list of available diagnostic commands; > > The "-o nosort" is set to preserve natural ordering of candidates: The > resulting order of completion candidates printed, on double-`TAB` is > structured: the JVM identifier (<main-class | path-to-jar>) appears > immediately after the corresponding PID, maintaining a clear and meaningful > association. > > Example with 2 JVMs running: > > $ jcmd -l > 91936 jdk.jcmd/sun.tools.jcmd.JCmd -l > 91668 install/MyApp.jar > 91769 EventGeneratorLoop 100 > $ jcmd <TAB_key_press> > -l --help 91668 install/MyApp.jar > 91769 EventGeneratorLoop > > > Overall it should greatly improve QoL for `jcmd` Users. > > --------- > - [ ] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai).
Ivan Bereziuk has updated the pull request incrementally with one additional commit since the last revision: removed interpreter directive at 1st line. Improved guard against non-bash shells, require 'complete' to be a buildin ------------- Changes: - all: https://git.openjdk.org/jdk/pull/30606/files - new: https://git.openjdk.org/jdk/pull/30606/files/460fd17e..a5280e96 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=30606&range=04 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=30606&range=03-04 Stats: 7 lines in 1 file changed: 1 ins; 2 del; 4 mod Patch: https://git.openjdk.org/jdk/pull/30606.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/30606/head:pull/30606 PR: https://git.openjdk.org/jdk/pull/30606
