Skip to content

Latest commit

 

History

History
 
 

conclave-init

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Conclave Init

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.

Project Structure

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.

Template

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.

Tests

In addition to the unit tests in this module, there are some basic integration tests in the test-conclave-init.sh script.