Skip to content

ColdBox/coldbox-cli

Repository files navigation

ColdBox CLI


ColdBox Snapshots Total Downloads Latest Stable Version Apache2 License

Copyright Since 2005 ColdBox Platform by Luis Majano and Ortus Solutions, Corp
www.coldbox.org | www.ortussolutions.com


This is the official ColdBox CLI for CommandBox. It is a collection of commands to help you work with ColdBox and its ecosystem for building, testing, and deploying BoxLang and CFML applications. It provides commands for scaffolding applications, creating tests, modules, models, views, and much more.

License

Apache License, Version 2.0.

ColdBox CLI Versions

The CLI also matches the major version of ColdBox. If you are using ColdBox 7, then you should use CLI @7. This is to ensure that you are using the correct commands for your version of ColdBox.

System Requirements

  • CommandBox 5.5+

Installation

Install the commands via CommandBox like so:

box install coldbox-cli

Usage

The ColdBox CLI provides powerful scaffolding and development tools for both CFML and BoxLang applications. All commands support the --help flag for detailed information.

πŸ“± Application Creation

Create new ColdBox applications from various templates:

# Create a basic ColdBox app
coldbox create app myApp

# Create with specific templates
coldbox create app myApp skeleton=modern
coldbox create app myApp skeleton=boxlang
coldbox create app myApp skeleton=rest
coldbox create app myApp skeleton=elixir

# Create with migrations support
coldbox create app myApp --migrations

# Interactive app wizard
coldbox create app-wizard

Available Templates: default, boxlang, modern, rest, elixir

🎯 Handlers (Controllers)

Generate MVC handlers with actions and optional views:

# Basic handler
coldbox create handler myHandler

# Handler with specific actions
coldbox create handler users index,show,edit,delete

# REST handler
coldbox create handler api/users --rest

# Resourceful handler (full CRUD)
coldbox create handler photos --resource

# Generate with views and tests
coldbox create handler users --views --integrationTests

πŸ“Š Models & Services

Create domain models and business services:

# Basic model
coldbox create model User

# Model with properties and accessors
coldbox create model User properties=fname,lname,email --accessors

# Model with migration
coldbox create model User --migration

# Model with service
coldbox create model User --service

# Model with everything (service, handler, migration, seeder)
coldbox create model User --all

# Standalone service
coldbox create service UserService

🎨 Views & Layouts

Generate view templates and layouts:

# Create a view
coldbox create view users/index

# View with helper file
coldbox create view users/show --helper

# View with content
coldbox create view welcome content="<h1>Welcome!</h1>"

# Create layout
coldbox create layout main

# Layout with content
coldbox create layout admin content="<cfoutput>#view()#</cfoutput>"

πŸ”§ Resources & CRUD

Generate complete resourceful components:

# Single resource (handler, model, views, routes)
coldbox create resource photos

# Multiple resources
coldbox create resource photos,users,categories

# Custom handler name
coldbox create resource photos PhotoGallery

# With specific features
coldbox create resource users --tests --migration

πŸ“¦ Modules

Create reusable ColdBox modules:

# Create module
coldbox create module myModule

# Module with specific features
coldbox create module myModule --models --handlers --views

πŸ§ͺ Testing

Generate various types of tests:

# Unit tests
coldbox create unit models.UserTest

# BDD specs
coldbox create bdd UserServiceTest

# Integration tests
coldbox create integration-test handlers.UsersTest

# Model tests
coldbox create model-test User

# Interceptor tests
coldbox create interceptor-test Security --actions=preProcess,postProcess

πŸ—„οΈ ORM & Database

Work with ORM entities and database operations:

# ORM Entity
coldbox create orm-entity User table=users

# ORM Service
coldbox create orm-service UserService entity=User

# Virtual Entity Service
coldbox create orm-virtual-service UserService

# ORM Event Handler
coldbox create orm-event-handler

# CRUD operations
coldbox create orm-crud User

πŸ”— Interceptors

Create AOP interceptors:

# Basic interceptor
coldbox create interceptor Security

# Interceptor with specific interception points
coldbox create interceptor Logger points=preProcess,postProcess

# With tests
coldbox create interceptor Security --tests

πŸ”„ Development Workflow

Manage your development environment:

# Reinitialize ColdBox framework
coldbox reinit

# Auto-reinit on file changes
coldbox watch-reinit

# Open documentation
coldbox docs
coldbox docs search="event handlers"

# Open API documentation
coldbox apidocs

πŸŽ›οΈ Global Options

Most commands support these common options:

  • --force - Overwrite existing files without prompting
  • --open - Open generated files in your default editor
  • --boxlang - Force BoxLang code generation (overrides auto-detection)
  • --!boxlang - Force CFML code generation (overrides auto-detection)
  • --help - Show detailed help for any command

Language Generation Control

The CLI supports both automatic detection and manual override of the target language:

  • Automatic: Uses detection methods (server engine, box.json settings)
  • Force BoxLang: Use --boxlang flag to generate BoxLang code regardless of detection
  • Force CFML: Use --!boxlang flag to generate CFML code regardless of detection

πŸ’‘ BoxLang Support

The CLI automatically detects BoxLang projects and generates appropriate code. You can also force BoxLang mode using the --boxlang flag.

πŸ” Automatic Detection

The CLI detects BoxLang projects using three methods (in order of precedence):

  1. Server Engine Detection: Running on a BoxLang server
  2. TestBox Runner Setting: When testbox.runner is set to "boxlang" in box.json
  3. Language Property: When language is set to "boxlang" in box.json

βš™οΈ Configuration Examples

Method 1: Language Property (Recommended)
{
    "name": "My BoxLang App",
    "language": "boxlang",
    "testbox": {
        "runner": "/tests/runner.bxm"
    }
}
Method 2: TestBox Runner Setting
{
    "name": "My App",
    "testbox": {
        "runner": "boxlang"
    }
}

πŸš€ Usage Examples

# Automatic detection (uses box.json settings)
coldbox create handler users

# Force BoxLang generation (overrides detection)
coldbox create handler users --boxlang

# Force CFML generation (overrides detection)
coldbox create handler users --!boxlang

πŸ“ Generated Code Differences

When BoxLang mode is detected or forced:

  • Uses .bx file extensions instead of .cfc
  • Generates class syntax instead of component
  • Uses BoxLang-specific template variants
  • Creates BoxLang test files (.bxm extensions)

πŸ“– Getting Help

Every command provides detailed help:

# General help
coldbox help

# Specific command help
coldbox create handler --help
coldbox create model --help

Credits & Contributions

I THANK GOD FOR HIS WISDOM IN THIS PROJECT

The Daily Bread

"I am the way, and the truth, and the life; no one comes to the Father, but by me (JESUS)" Jn 14:1-12

About

The official ColdBox CLI for CommandBox

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

Contributors 5