command box, package manager, automation, repl

Post on 02-Jul-2015

335 Views

Category:

Software

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Command box, Package Manager, Automation, REPL

TRANSCRIPT

Go Commando!

Package Manager, Automation, REPL, …

Who am I?•ColdFusion Architect (12 years)

•Geek

•Android Lover

•Blogger (codersrevolution.com)

•ColdBox Platform Evangelist

•Musician

•Shade-Tree Mechanic

•Husband (11 years)

•Dad (3 beautiful girls)

Agenda

•How do we work in CF

•How we SHOULD work

•What is CommandBox

•Features

•Usage

•Roadmap

How do we work in CF?

IT'S ALIVE!

Cool Kids

How we should work!

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

•Custom

Installation

Java 1.7+

33mb

Installs to:

User/.CommandBox

It is POSS

•GitHub

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

•Professional Support

•Training

•Mentoring

•Custom Commands

•Support

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Usage - CLI vs Shell

Commands Shell

Usage - Commands

•How you get things done!

•Built-in Help

•API Docs

•Command Namespaces

•Commands

•Aliases

•Parameters/Arguments

•Tab-Completion

•Commands, Parameters, Paths, 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

•Some code

•A box.json

What’s a module?

A “smart” package

Has a ModuleConfig.cfc

Has optional conventions

Auto-registers itself with ColdBox

box.json•Package Descriptor

•Declares package metadata

•Name

•Slug

•Version

•Author

•Dependencies

•DevDependencies

•Installation Details

•Custom Metadata

box.json

{

"name" : "Weather By IP",

"author" : "Brad Wood <brad@bradwood.com>",

"version" : "1.0.0",

"slug" : "weather-lookup-by-ip",

"shortDescription" : "Look up local weather.",

"type" : "modules",

"dependencies" : {

"geolocation-lookup-by-ip" : "2.0.0"

}

}

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

•ForgeBox Commands

•150+ packages

•Help us out!

•www.forgebox.org coming soon!

Package Commands

•forgebox

•install

•uninstall

•search

•show

•artifacts

•remove, list, clean

•package

•show, init, clear, set

Packaging Features

•Choose version to install

•Automatically installs dependencies

•Development/Production dependencies

•Distribute without dependencies

• “install” initializes a project

•Dependency Inception

Packaging Features

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Read - Eval - Print - Loop

•Executes code

•Support CFML 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

•status

•log

•open

•forget

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Scaffolding

•ColdBox Applications

•ContentBox Applications

•TestBox Integration

•Custom For Any Framework or Flow

Scaffolding

init

coldbox create app “MyApp” —installColdBoxBE

coldbox create handler contacts index,save,delete

coldbox create module MyModule

install testbox-be

package set defaultPort=“90001”

package set testbox.runner=“localhost:90001/tests/runner”

start

testbox run

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Automation

•run

•Any OS binary

•Link to grunt/gulp/ant

•execute

•Execute any CFML template

•recipe

•Like a “Batch” file

•Runs multiple commands

•Can accept parameters

•my-recipe.boxr

# Init a repository

mkdir $name

init $name

run git init

# Create ColdBox App

coldbox create app $1 —installColdBoxBE

coldbox create handler $2 index,save,delete

coldbox create module $3

# Prepare for Testing

install testbox-be

package set defaultPort=“$4”

package set testbox.runner=“localhost:$4/tests/runner”

my-recipe.boxr

$> recipe my-recipe.boxr myApp myHandler myModule 8081

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