commandbox at cfcamp 2014

Post on 21-Jun-2015

453 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presentation on CommandBox CLI, Package Manager for ColdFusion (CFML)

TRANSCRIPT

Go Commando!

WHO AM I?

• Luis Majano - Computer Engineer

• Born in El Salvador ------------------>

• Architecture + Software Design

• CEO of Ortus Solutions

• Adobe Community Professional

• Creator of all things Box: ColdBox, ContentBox, WireBox....

AGENDA

• How do we work in CF • A better way to work in CF • What is CommandBox • Features • Usage • Roadmap

HOW DO WE WORK IN CF?

Code% App%

CodeCode

CodeCode

Code

Code

Code

IT’S ALIVE!

Cool Kids

How we should work!

App#Package#Manager#

CLI#

REPL#

Automa6on#

OS#

We need to learn, study, and apply!

Introducing…

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Who is this for?

• For any ColdFusion (CFML) Developer • Commands For:

• Operating System Integration • Executing CFML Code • ColdBox Developers • TestBox BDD/TDD • ContentBox Developers • Any framework/app developer

Installation

Java 1.7+

33mb

v1.0.0 Beta <7 months of development

Long ways to go!

We are POSS

• GitHub

• https://github.com/Ortus-Solutions/commandbox • Professional Support

• Training + Mentoring

• Development

• Support

• Salsa Lessons are Optional

Brad WoodSalsa King

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Usage - CLI vs Shell

box myapp.cfm Shell

Usage - OS Execution

OS +

CFML

Execute CFML Filesbox myapp.cfm &

Enhanced Executionbox execute myapp.cfm name=luis

param=hello

Box Scripting: *Unix#!/usr/bin/env box

Usage - Commands

• How you get things done! • Built-in Help • Command Namespaces

• Commands • Aliases • Parameters/Arguments

• Tab-Completion • Commands, Parameters, Paths, ForgeBox, Custom

Usage - Parameters

• Named • Positional • Boolean Flags • Escaped Input • Required Values • Completion

Usage - History

• Command History • REPL History • Clear History

Usage - OS Integration

• OS Integration Commands • Output Piping

• | • File Redirection

• > Create • >> Append

• Open • Files/Directories

• Browser • Run OS Binaries

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

What’s a package?

• A folder or zip/tar file that must contain: • box.json

• It must be in the root!

box.json

• Package Descriptor • Declares package metadata

• Name • Slug • Version • Author • Dependencies • DevDependencies • Installation Details

• Custom Metadata

box.json

Where do they come from?

• ForgeBox • File zip/tar • Directory • Git • SVN • Github • Bitbucket • Custom

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

ForgeBox

• Cloud package repository • Web GUI • Community driven • 145+ packages • Help us out! • www.forgebox.org coming soon!

Package Commands• forgebox

• install • uninstall • update • search • show • types • slugcheck

• artifacts • remove, list, clean

• package • show, init, clear, set

Packaging Features

• Can distribute without dependencies • Can have development dependencies • Dependencies Inception • “install” to initialize a project • “update” to update dependencies

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Read - Eval - Print - Loop

• Executes code • Support Tags or CFScript • History • Multi-line Statements • Declare closures, functions, etc • Keeps state

REPL

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Integrated Server• Lightweight servlet container : undertow • Startup ad-hoc servers in any folder • Keeps track of servers, no WEB-INF needed • Server

• start • stop • restart • status • log • open • forget

• Railo + Adobe CF

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Scaffolding

• ColdBox Applications • ContentBox Applications • TestBox Integration • Available For Any Framework or Application • Preside CMS

Scaffolding

initcoldbox create app “MyApp” —-installColdBoxBEcoldbox create handler contacts index,save,deletecoldbox create module MyModuleinstall testbox-bepackage set defaultPort=“90001”package set testbox.runner=“localhost:90001/tests/runner”testbox run

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Automation Commands• run

• Execute any OS binary • Integrate with grunt/gulp/ant

• execute

• Enhanced execution • Can accept parameters

• recipe

• Like a “Batch” file: !#/usr/bin/box • Runs multiple commands • Can accept parameters • my-recipe.boxr

# Init a repositorymkdir $nameinit $namerun git init# Create ColdBox Appcoldbox create app $1 —installColdBoxBEcoldbox create handler $2 index,save,deletecoldbox create module $3# Prepare for Testinginstall testbox-bepackage set defaultPort=“$4”package set testbox.runner=“localhost:$4/tests/runner”

my-recipe.boxr

recipe my-recipe.boxr MyApp

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

ColdFusion Extensibility

• Commands are CFML • Create custom commands • Register in ForgeBox • DI/AOP Capabilities • Favorite Command

• CommandBox-Chuck-Norris

CFML

Roadmap

Task Runners

Adobe CF Engine

ForgeBox 2.0

ForgeBox Enterprise

More Generators

Automation/Async

Resources• Official Site

• http://ortussolutions.com/products/commandbox • Documentation

• http://apidocs.ortussolutions.com/commandbox/1.0.0/ • https://ortussolutions.com/products/commandbox/docs/current

• Google Group

• https://groups.google.com/a/ortussolutions.com/forum/#!forum/commandbox • Training

• http://ortussolutions.com/services/training • Professional Support

• http://ortussolutions.com/services/support

Thanks!

Q & A

top related