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 afdd466e07 GROOVY-8162: Update Groovysh to JLine3 (add support for 
/pwd and /date)
afdd466e07 is described below

commit afdd466e073b4d7c0f7f39ca452f2b983d334148
Author: Paul King <pa...@asert.com.au>
AuthorDate: Mon Aug 11 19:56:27 2025 +1000

    GROOVY-8162: Update Groovysh to JLine3 (add support for /pwd and /date)
---
 .../main/groovy/org/apache/groovy/groovysh/Main.groovy | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git 
a/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/Main.groovy
 
b/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/Main.groovy
index 6ed2dc62a8..8adc4cfeed 100644
--- 
a/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/Main.groovy
+++ 
b/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/Main.groovy
@@ -105,6 +105,8 @@ class Main {
                 variables::get)
             def cmds = [
                 '/clear': new CommandMethods((Function) this::clear, 
this::defaultCompleter),
+                '/pwd'  : new CommandMethods((Function) this::pwd, 
this::defaultCompleter),
+                '/date' : new CommandMethods((Function) this::date, 
this::defaultCompleter),
                 '/echo' : new CommandMethods((Function) this::echo, 
this::defaultCompleter),
                 "/!"    : new CommandMethods((Function) this::shell, 
this::defaultCompleter)
             ]
@@ -114,6 +116,8 @@ class Main {
                 posix.register(cmd, PosixCommands::"$orig")
                 cmds.put(cmd, new CommandMethods((Function) this::posix, 
this::optFileCompleter))
             }
+            posix.register('/pwd', PosixCommands::pwd)
+            posix.register('/date', PosixCommands::date)
             registerCommands(cmds)
         }
 
@@ -138,9 +142,21 @@ class Main {
             [new ArgumentCompleter(NullCompleter.INSTANCE, new 
Completers.OptionCompleter(new Completers.FilesCompleter(workDir), 
this::commandOptions, 1))]
         }
 
+        private void pwd(CommandInput input) {
+            posix(adjustUsage('pwd', '/pwd'), input)
+        }
+
+        private void date(CommandInput input) {
+            posix(adjustUsage('date', '/date'), input)
+        }
+
         private void posix(CommandInput input) {
+            posix(usage[input.command()], input)
+        }
+
+        private void posix(String[] usage, CommandInput input) {
             try {
-                parseOptions(usage[input.command()], input.args())
+                parseOptions(usage, input.args())
                 posix.execute(input.command(), [input.command(), 
*input.args()] as String[])
             } catch (Exception e) {
                 saveException(e)

Reply via email to