Skip to content

cobaltinc/bloom

Repository files navigation

Bloom 🌼

Create Spring application with one command built by Cobalt, Inc.

Latest npm version PRs welcome

🚀 Getting started

npm i -g @cobaltinc/bloom

✨ Commands

new <project-name>

Create new spring application.

Options

Option Type Description
-r, --remote string GitHub repository url for custom template.
-t, --token string To use the private repository, you need to set up GitHub Personal access token.

generate subsystem <subsystem-name>

Generate new subsystem in application.

Make directories and build file in subsystem:

- subsystem
  - <subsystem-name>
    - component
      - src
        - main
        - test
      - build.gradle[.kts]
    - interface
      - src
        - main
        - test

🔖 Custom Template

You can create custom templates for new projects. For help creating a new template, see the templates directory.

Usage

bloom new <project-name> --remote <github-repository-url>

Interpolation

When project created from the template, text are converted through mustache syntax.

Default

Params Type Description
PROJECT_NAME string The project name you entered.
PACKAGE_NAME string Convert the project name to lower case.
APPLICATION_NAME string Convert the project name to PascalCase. Typically used for Application class.

Additional

If you need additional data, you can create a bloom.json file in custom template repo:

{
  "args": [
    {
      "type": "number",
      "name": "VERSION",
      "message": "Set initial version",
      "min": 1,
      "max": 5
    },
    {
      "type": "text",
      "name": "DATABASE_URL",
      "message": "Set database url"
    },
    {
      "type": "password",
      "name": "DATABASE_PASSWORD",
      "message": "Set database password"
    },
    {
      "type": "select",
      "name": "SELECT",
      "message": "Pick your database",
      "choices": [
        { "title": "MySQL" },
        { "title": "MariaDB" },
        { "title": "PostgreSQL" },
        { "title": "Oracle" }
      ]
    }
  ]
}

📄 License

Bloom is made available under the MIT License.