> 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

Reply via email to