First proper draft of DSL for Groovy Commands
Users can declare or Command, OptionHandler classes in an init script
or they can use a DSL, e.g.
command("foo") { args -> println "Do stuff with ${args} array" }
or
command("foo") {
options { option "bar", "Help text for bar option" ithOptionArg() ofType Integer }
run { options -> println "Do stuff with ${options.valueOf('bar')}" }
}
This commit is contained in:
19
spring-boot-cli/src/test/resources/commands/closure.groovy
Normal file
19
spring-boot-cli/src/test/resources/commands/closure.groovy
Normal file
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright 2012-2013 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
command("foo") { args ->
|
||||
println "Hello Foo"
|
||||
}
|
||||
@@ -16,8 +16,6 @@
|
||||
|
||||
package org.test.command
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
class TestCommand implements Command {
|
||||
|
||||
String name = "foo"
|
||||
|
||||
@@ -31,7 +31,6 @@ class TestCommand extends OptionHandler {
|
||||
void run(OptionSet options) {
|
||||
// Demonstrate use of Grape.grab to load dependencies before running
|
||||
println "Clean: " + Git.open(".." as File).status().call().isClean()
|
||||
org.springframework.boot.cli.command.ScriptCommandTests.executed = true
|
||||
println "Hello ${options.nonOptionArguments()}: ${options.has('foo')}"
|
||||
}
|
||||
|
||||
|
||||
@@ -14,8 +14,19 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
command("foo") { args ->
|
||||
def foo() {
|
||||
"Foo"
|
||||
}
|
||||
|
||||
command("foo") {
|
||||
|
||||
options {
|
||||
option "foo", "A foo of type String"
|
||||
option "bar", "Bar has a value" withOptionalArg() ofType Integer
|
||||
}
|
||||
|
||||
run { options ->
|
||||
println "Hello ${foo()}: bar=${options.valueOf('bar')}"
|
||||
}
|
||||
|
||||
org.springframework.boot.cli.command.ScriptCommandTests.executed = true
|
||||
println "Hello ${options.nonOptionArguments()}: ${options.has('foo')} ${options.valueOf('bar')}"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user