commandbox repl, cli, and package manager

44
Go Commando! Package Manager, Automation, REPL, …

Upload: bdw429s

Post on 02-Jul-2015

64 views

Category:

Software


3 download

DESCRIPTION

CommandBox is a new CLI, REPL, and Package Manager for CFML developers.

TRANSCRIPT

Page 1: CommandBox REPL, CLI, and Package Manager

Go Commando!

Package Manager, Automation, REPL, …

Page 2: CommandBox REPL, CLI, and Package Manager

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)

Page 3: CommandBox REPL, CLI, and Package Manager

Agenda

• How do we work in CF

• How we SHOULD work

• What is CommandBox

• Features

• Usage

• Roadmap

Page 4: CommandBox REPL, CLI, and Package Manager

How do we work in CF?

Page 5: CommandBox REPL, CLI, and Package Manager

IT'S ALIVE!

Page 6: CommandBox REPL, CLI, and Package Manager

Cool Kids

Page 7: CommandBox REPL, CLI, and Package Manager

How we should work!

Page 8: CommandBox REPL, CLI, and Package Manager

Introducing…

Page 9: CommandBox REPL, CLI, and Package Manager

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 10: CommandBox REPL, CLI, and Package Manager

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

Page 11: CommandBox REPL, CLI, and Package Manager

Installation

Java 1.7+

33mb

Installs to:User/.CommandBox

Page 12: CommandBox REPL, CLI, and Package Manager

It is POSS

• GitHub

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

• Training

• Mentoring

• Custom Commands

• Support

Page 13: CommandBox REPL, CLI, and Package Manager

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 14: CommandBox REPL, CLI, and Package Manager

Usage - CLI vs Shell

Commands Shell

Page 15: CommandBox REPL, CLI, and Package Manager

Usage - Commands

• How you get things done!

• Built-in Help

• API Docs

• Command Namespaces

• Commands

• Aliases

• Parameters/Arguments

• Tab-Completion

• Commands, Parameters, Paths, Custom

Page 16: CommandBox REPL, CLI, and Package Manager

Usage - Parameters

• Named

• Positional

• Boolean Flags

• Escaped Input

• Required Values

• Completion

Page 17: CommandBox REPL, CLI, and Package Manager

Usage - History

• Command History

• REPL History

• Clear History

Page 18: CommandBox REPL, CLI, and Package Manager

Usage - OS Integration

• OS Integration Commands

• Output Piping

• |

• File Redirection

• > Create

• >> Append

• Open

• Files/Directories

• Browser

• Run OS Binaries

Page 19: CommandBox REPL, CLI, and Package Manager

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 20: CommandBox REPL, CLI, and Package Manager

What’s a package?

• A folder

• Some code

• A box.json

Page 21: CommandBox REPL, CLI, and Package Manager

What’s a module?

A “smart” package

Has a ModuleConfig.cfc

Has optional conventions

Auto-registers itself with ColdBox

Page 22: CommandBox REPL, CLI, and Package Manager

box.json• Package Descriptor

• Declares package metadata

• Name

• Slug

• Version

• Author

• Dependencies

• DevDependencies

• Installation Details

• Custom Metadata

Page 23: CommandBox REPL, CLI, and Package Manager

box.json

{ "name" : "Weather By IP", "author" : "Brad Wood <[email protected]>", "version" : "1.0.0", "slug" : "weather-lookup-by-ip", "shortDescription" : "Look up local weather.", "type" : "modules", "dependencies" : { "geolocation-lookup-by-ip" : "2.0.0" }}

Page 24: CommandBox REPL, CLI, and Package Manager

Where do they come from?

• ForgeBox • File zip/tar

• Directory

• Git

• SVN

• Github

• Bitbucket

• Custom

Page 25: CommandBox REPL, CLI, and Package Manager

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 26: CommandBox REPL, CLI, and Package Manager

ForgeBox

• Cloud package repository

• Web GUI

• Community driven

• ForgeBox Commands

• 150+ packages

• Help us out!

• www.forgebox.org coming soon!

Page 27: CommandBox REPL, CLI, and Package Manager

Package Commands

• forgebox

• install

• uninstall

• search

• show

• artifacts

• remove, list, clean

• package

• show, init, clear, set

Page 28: CommandBox REPL, CLI, and Package Manager

Packaging Features

• Choose version to install

• Automatically installs dependencies

• Development/Production dependencies

• Distribute without dependencies

• “install” initializes a project

• Dependency Inception

Page 29: CommandBox REPL, CLI, and Package Manager

Packaging Features

Page 30: CommandBox REPL, CLI, and Package Manager

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 31: CommandBox REPL, CLI, and Package Manager

Read - Eval - Pr int - Loop

• Executes code

• Support CFML or CFScript

• History

• Multi-line Statements

• Declare closures, functions, etc

• Keeps state

REPL

Page 32: CommandBox REPL, CLI, and Package Manager

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 33: CommandBox REPL, CLI, and Package Manager

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

Page 34: CommandBox REPL, CLI, and Package Manager

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 35: CommandBox REPL, CLI, and Package Manager

Scaffolding

• ColdBox Applications

• ContentBox Applications

• TestBox Integration

• Custom For Any Framework or Flow

Page 36: CommandBox REPL, CLI, and Package Manager

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”starttestbox run

Page 37: CommandBox REPL, CLI, and Package Manager

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 38: CommandBox REPL, CLI, and Package Manager

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

Page 39: CommandBox REPL, CLI, and Package Manager

# 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 myHandler myModule 8081

Page 40: CommandBox REPL, CLI, and Package Manager

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 41: CommandBox REPL, CLI, and Package Manager

ColdFusion Extensibility

• Commands are CFML

• Create custom commands

• Register in ForgeBox

• DI/AOP Capabilities

• Favorite Command

• CommandBox-Chuck-Norris

CFML

Page 42: CommandBox REPL, CLI, and Package Manager

Roadmap

Task Runners

Adobe CF Engine

ForgeBox 2.0

ForgeBox Enterprise

More Generators

Automation/Async

Page 43: CommandBox REPL, CLI, and Package Manager

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

Page 44: CommandBox REPL, CLI, and Package Manager

Thanks!

Q & A