Conclave Init is a tool to quickly and automatically generate new Conclave projects.
It works by copying a template project with some modifications, namely custom package, enclave class name, and target directory.
The CLI is exposed through Main.kt. You can see the available parameters in CommandLineParameters.
The entry point for the main logic is ConclaveInit.kt. In the future, this could be called from another interface, e.g. REST or a GUI.
The template is a simple Conclave project with Java and Kotlin enclave implementations. Note that the tool will filter the source files based on which language is selected.
There is a bit of Gradle trickery involved in packaging the template. The Zip
commands in
build.gradle package up the template and also the Gradle wrapper from the root project into the
resources
directory, so that they are included in the fat JAR produced by the shadow plugin.
The app can be executed via
java -jar /path/to/conclave-init.jar ARGS
See the user docs for more details.
In addition to the unit tests in this module, there are some basic integration tests in the
test-conclave-init.sh
script.