Generators

About

Slate Kit comes with a command line tool to serve as a project generator. This project generator is a pacakged java based application, and works like a minimal version of nodejs yeoman or python cookie-cutter There are several types of project generators available by default from Slate Kit. These are the most common type of Applications or services corresponding to the architecture components available from Slate Kit.

    
    slatekit new app -name="Sample1" -packageName="mycompany.apps"
    


Status

Currently, the Slate Kit CLI tool is only available for automatic install on Mac OS as it is integrated with HomeBrew. You can however perform an manual install on Windows using the instructions provided.



MacOS

You can easily install the Slate Kit CLI using HomeBrew on Mac OS.

Install

     
    brew tap slatekit/slatekit

    # Note: install may take a long time ( see notes/issues below )
    brew install slatekit
    

Upgrade

     
    brew upgrade slatekit
    

Un-Install

     
    brew uninstall slatekit
    brew untap slatekit/slatekit
    


Windows

Currently, there is no installer available for Windows. However you have 2 options:

Option 1: Sample Apps

There are several sample applications available in git at Samples. You can simply copy one of the samples ( app, cli, api, job, etc ) and adjust/remove code accoringly.

Option 2: Manual install

You can also perform a manual install for the time being.

1. Download the latest release zip from https://github.com/slatekit/slatekit-cli/releases
2. Unzip https://github.com/slatekit/slatekit-cli/archive/v2.2.0.zip to C:/tools/slatekit/2.2.0
3. Create a bin directory in C:/tools/slatekit/2.2.0/bin and move slatekit and slatekit.bat files into bin
4. Add C:/tools/slatekit/2.2.0/bin/ to your system path
5. In terminal Run command slatekit new app -name=“MyApp1” -packageName=“company1.apps” (You may have to refresh your terminal)
6. This will fail the first time but it will generate the settings
10. Go to your user/documents directory and open ~/.slatekit/tools/cli/conf/settings.conf file
11. Update the generation.source to path of the templates e.g. C:/tools/slatekit/2.2.0/tempaltes
12. You should now be able to run the command again to generate projects



Settings

The settings for the generator are automatically created at ~/.slatekit/tools/cli/conf/settings.conf when you try to create your first project. The settings are listed below

Name Type Desc Example
slatekit.version Variable Version of Slate Kit stable libraries to use 2.2.0
slatekit.version.beta Variable Version of Slate Kit beta libraries to use 2.2.0
kotlin.version Variable Version of Kotlin to use 1.3.6
generation.source Variable Represents the path to the templates used for project code generation. This is defaulted to the version of Slate Kit installed through HomeBrew /usr/local/Cellar/slatekit/1.34.0/templates

Back to top



APP

Generates a new Slate Kit stand-alone application with support command line args, environments, configs, logging, help usage and more. Refer to the App component and example: Example_App.kt.

     
    :> slatekit new app -name="MyApp1" -packageName="company1.apps"
    
    # Now build and run via gradle
    :> cd MyApp1
    :> gradle build
    :> gradle run
    

Back to top



API

Generates a new API project for hosting HTTP/Web APIs. APIs in Slate Kit are considered Universal in the sense that you write them once and they are available as both HTTP/Web APIs ( in the form of RPCs ) and also available on the CLI. Also refer to the APIs component.

      
    slatekit new api -name="MyAPI1" -packageName="company1.apis"
    
    # Now build and run via gradle
    :> cd MyAPI1
    :> gradle build
    :> gradle run
    


Back to top



JOB

Generates a new background job that can be gracefully started, stopped, paused, resumed. They can also be run in “pages”, or process items from queues. Refer to the Jobs component and example: Example_Jobs.kt.

     
    slatekit new job -name="MyJob1" -packageName="company1.jobs"
    

For the Job, you can run the different job types by passing -job.name to the arguments for gradle/java. E.g.

    
    cd gen/MyJob1
    gradle build

    # To run the One Time Job sample
    gradle run --args='-sample=onetime'

    # To run the Paged Job sample
    gradle run --args='-sample=paging'

    # To run the Queue Job sample
    gradle run --args='-sample=queued'

    # To run the Worker Sample
    gradle run --args='-sample=worker'
    


Back to top



CLI

Generates a CLI ( Command Line Interface ) application. The CLI in Slate Kit can host Slate Kit APIs. Also refer to the CLI component and example: Example_CLI.kt.

      
    slatekit new cli -name="MyCLI1" -packageName="company1.apps"
    
    # Now build and run via gradle
    :> cd MyCLI1
    :> gradle build
    :> gradle distZip
    :> cd build/distributions

    # Unzip the MyCLI1.zip and run
    :> cd MyCLI1/bin
    :> ./MyCLI1
    

Back to top