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)