Upload
ortus-solutions-corp
View
36
Download
0
Tags:
Embed Size (px)
Citation preview
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
What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-LoopIntegrated
Server
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
We are POSS
• GitHub
• https://github.com/Ortus-Solutions/commandbox
• Professional Support
• Training + Mentoring
• Development
• Support
• Salsa Lessons are Optional
Brad Wood
Salsa King
What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-LoopIntegrated
Server
ScaffoldingForgeBox
CFML
ColdFusion Automation
Usage - OS
Execution
OS
+
CFML
Execute CFML Files
box myapp.cfm &
Box Scripting: *Unix
#!/usr/bin/env box
Usage - Commands
• How you get things done!
• Built-in Help
• command help
• Command Namespaces
• Commands
• Aliases
• Parameters/Arguments
• Tab-Completion
• Commands, Parameters, Paths, ForgeBox, Custom
Usage - Parameters
Named Paramsbox execute file=test.cfm
Positionalbox install coldbox
Boolean Flagsbox coldbox create app —installColdBox
Boolean Flagsbox coldbox create controller —!script
Escape Input\t,\n, \”, \’
Usage - History
Command Historybox history
REPL Historybox history type=scriptrepl
box history type=tagrepl
Clear Historybox history —clear
Usage - OS
Integration• Editing
• sed
• Output Manip
• |, more, tail, grep
• File Redirection
• > Create
• >> Append
• Open
• Files/Directories
• Browser
• Run OS Binaries
• Grunt, Node, Git, Gulp, Etc.
What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-LoopIntegrated
Server
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
Where do they come
from?
• ForgeBox
• File zip/tar
• Directory
• Git
• SVN
• Github
• Bitbucket
• Custom
What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-LoopIntegrated
Server
ScaffoldingForgeBox
CFML
ColdFusion Automation
ForgeBox
• Cloud package repository
• Web GUI
• Community driven
• 180+ packages
• Help us out!
• www.forgebox.io
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
• “outdated” to check for versions
• “list” to visualize dependencies
What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-LoopIntegrated
Server
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 Package
Manager
REPL
Read-Eval
Print-LoopIntegrated
Server
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
• Lucee + Railo + Adobe CF
What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-LoopIntegrated
Server
ScaffoldingForgeBox
CFML
ColdFusion Automation
Scaffolding
• ColdBox Applications
• ContentBox Applications
• TestBox Integration
• Available For Any Framework or Application
• Preside CMS
Scaffolding
init
coldbox create app “MyApp” —-installColdBox
coldbox create handler contacts index,save,delete
coldbox create module MyModule
install testbox
package set defaultPort=“90001”
package set testbox.runner=“localhost:90001/tests/runner”
testbox run
What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-LoopIntegrated
Server
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 repository
mkdir $name
init $name
run git init
# Create ColdBox App
coldbox create app $name —installColdBox
coldbox create handler $controller index,save,delete
coldbox create module $module
# Prepare for Testing
install testbox
package set defaultPort=“$port”
package set testbox.runner=“localhost:$port/tests/runner”
my-recipe.boxr
recipe my-recipe.boxr MyApp
What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-LoopIntegrated
Server
ScaffoldingForgeBox
CFML
ColdFusion Automation
ColdFusion Extensibility
• Commands are CFML
• Create custom commands
• Register in ForgeBox
• DI/AOP Capabilities
• Favorite Commands
• CommandBox-Chuck-Norris
• cfdocs
CFML
Roadmap
Task Runners
Adobe CF Engine
ForgeBox 2.0
ForgeBox
Enterprise
Package Endpoints
More Automations
OS Execution
Params
Resources
• Official Site
• http://ortussolutions.com/products/commandbox
• Documentation
• http://apidocs.ortussolutions.com/commandbox/current
• http://commandbox.ortusbooks.com
• Google Group
• https://groups.google.com/a/ortussolutions.com/forum/#!forum/comman
dbox
• Training
• http://ortussolutions.com/services/training
• Professional Support
• http://ortussolutions.com/services/support