This is an automated email from the ASF dual-hosted git repository.
paulk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new 9da7f55e99 GROOVY-8162: Update Groovysh to JLine3 (additional
documentation)
9da7f55e99 is described below
commit 9da7f55e99f6fd326c0eeb3a92ee3ae0a022e76b
Author: Paul King <[email protected]>
AuthorDate: Tue Aug 12 20:45:45 2025 +1000
GROOVY-8162: Update Groovysh to JLine3 (additional documentation)
---
.../src/spec/doc/assets/img/repl_cd.png | Bin 0 -> 804129 bytes
.../src/spec/doc/assets/img/repl_del.png | Bin 0 -> 48583 bytes
.../src/spec/doc/assets/img/repl_grep.png | Bin 0 -> 389321 bytes
.../groovy-groovysh/src/spec/doc/groovysh.adoc | 80 +++++++++++++++++++--
4 files changed, 74 insertions(+), 6 deletions(-)
diff --git a/subprojects/groovy-groovysh/src/spec/doc/assets/img/repl_cd.png
b/subprojects/groovy-groovysh/src/spec/doc/assets/img/repl_cd.png
new file mode 100644
index 0000000000..66f67e5002
Binary files /dev/null and
b/subprojects/groovy-groovysh/src/spec/doc/assets/img/repl_cd.png differ
diff --git a/subprojects/groovy-groovysh/src/spec/doc/assets/img/repl_del.png
b/subprojects/groovy-groovysh/src/spec/doc/assets/img/repl_del.png
new file mode 100644
index 0000000000..5f41ddcfba
Binary files /dev/null and
b/subprojects/groovy-groovysh/src/spec/doc/assets/img/repl_del.png differ
diff --git a/subprojects/groovy-groovysh/src/spec/doc/assets/img/repl_grep.png
b/subprojects/groovy-groovysh/src/spec/doc/assets/img/repl_grep.png
new file mode 100644
index 0000000000..82245300c8
Binary files /dev/null and
b/subprojects/groovy-groovysh/src/spec/doc/assets/img/repl_grep.png differ
diff --git a/subprojects/groovy-groovysh/src/spec/doc/groovysh.adoc
b/subprojects/groovy-groovysh/src/spec/doc/groovysh.adoc
index 7784208023..358ceecb47 100644
--- a/subprojects/groovy-groovysh/src/spec/doc/groovysh.adoc
+++ b/subprojects/groovy-groovysh/src/spec/doc/groovysh.adoc
@@ -298,39 +298,49 @@ the available commands:
groovy> /help
/! execute shell command
/alias create command alias
+ /cat concatenate and print FILES
+ /cd change directory
/classloader display/manage Groovy classLoader data
/clear clear terminal
/colors view 256-color table and ANSI-styles
/console launch Groovy console
+ /date display date
/del delete console variables, methods, classes and imports
/doc open document on browser
/echo echos a value
+ /exit exit from app/script
/grab add maven repository dependencies to classpath
+ /grep search for PATTERN in each FILE or standard input.
+ /head display first lines of files
+ /help command help
/highlighter manage nanorc theme system
/history list history of commands
/imports show/delete import statements
/inspect display/browse object info on terminal/object browser
/keymap manipulate keymaps
/less file pager
- /load load a file into the buffer
+ /load load state/a file into the buffer
+ /ls list files
/methods show/delete methods
/nano edit files
/pipe create/delete pipe operator
/prnt print object
+ /pwd print working directory
/reset clear the buffer
- /save save the buffer to a file
+ /save save state/the buffer to a file
/setopt set options
/setvar set lineReader variable value
/show list console variables
+ /slurp slurp file or string variable context to object
+ /sort writes sorted standard input to standard output.
+ /tail display last lines of files
/ttop display and update sorted information about threads
/types show/delete types
/unalias remove command alias
/unsetopt unset options
/vars show/delete variable declarations
+ /wc word, line, character, and byte count
/widget manipulate widgets
- /exit exit from app/script
- /help command help
- /slurp slurp file or string variable context to object
----------------------------------------------------------------------------------
While in the interactive shell, you can ask for help for any command to
@@ -364,6 +374,43 @@ Aliases are persisted in a `.groovysh/aliases.json` file
in the user home direct
See also the `/unalias` command, which allows aliases to be removed.
+[[GroovyShell-cat]]
+==== `/cat`
+
+Concatenate and print files:
+
+[source,jshell]
+----
+groovy> /cat answers.json answers.toml
+{
+ "answer": {
+ "universe":
+ 42
+ }
+}
+[answer]
+universe = 42
+----
+
+See also the `/less` command, which can be used to display the contents of a
file
+a page at a time with syntax highlighting.
+
+[[GroovyShell-cd]]
+==== `/cd`
+
+Change the current working directory. `groovysh` keeps track of a _current
working directory_. You can view it with `/pwd` and change it with `/cd`.
+
+The `groovysh` file commands
+(`/cat`, `/less`, `/head`, `/slurp`, `/load`, `/ls`, etc.) will use the
current working directory.
+
+NOTE: The JVM running `groovysh` also has its own concept of the current
working directory, which is the directory in which `groovysh` was started, so
`/!ls` and `/ls` may not show the same files. Using `/!cd` only changes the
working directory within the context of that one shell command.
+
+There is a predefined shared variable `PWD` which can assist with invoking
shell commands. So, on unix platforms, `/ls` will list the same files as `/!ls
$PWD`.
+
+See also the `/pwd` command, which prints the current working directory.
+
+image:assets/img/repl_cd.png[Cd, width=80%]
+
[[GroovyShell-classloader]]
==== `/classloader`
@@ -403,7 +450,21 @@ image:assets/img/repl_console.png[Console, width=80%]
[[GroovyShell-del]]
==== `/del`
-Deletes objects from the shell.
+Deletes objects from the shell. The command looks for any
+variable, method, type, shared data, or import with the given name and deletes
it.
+
+Here we create two variables, `x` and `y`, then delete the `x` variable:
+
+image:assets/img/repl_del.png[Console, width=40%]
+
+See also, the `/vars`, `/methods`, `/types`, and `/imports` commands.
+These offer a `-d`|`--delete` option to delete the respective objects
+with completion.
+
+[[GroovyShell-doc]]
+==== `/doc`
+
+Open documentation in a browser.
[[GroovyShell-echo]]
==== `/echo`
@@ -458,6 +519,13 @@ org.apache.commons:commons-email:
This command can be given at any time to add new dependencies.
+[[GroovyShell-grep]]
+==== `/grep`
+
+The `/grep` command searches for patterns in files or standard input.
+
+image:assets/img/repl_grep.png[Echo, width=60%]
+
[[GroovyShell-history]]
==== `/history`