SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
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%
Code
Code
Code
Code
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 Package

Manager
REPL
Read-Eval

Print-Loop
Integrated

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
Installation
Java 1.7+
33mb
v1.1.1
v2.0.0 Alpha
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-Loop
Integrated

Server
ScaffoldingForgeBox
CFML
ColdFusion Automation
Usage - CLI vs Shell
box myapp.cfm Shell
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 Params
box execute file=test.cfm
Positional
box install coldbox
Boolean Flags
box coldbox create app —installColdBox
Boolean Flags
box coldbox create controller —!script
Escape Input
t,n, ”, ’
Usage - History
Command History
box history
REPL History
box history type=scriptrepl
box history type=tagrepl
Clear History
box 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-Loop
Integrated

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
box.json
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-Loop
Integrated

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-Loop
Integrated

Server
ScaffoldingForgeBox
CFML
ColdFusion Automation
Read - Eval - Print - Loop
• Executes code
• SupportTags or CFScript
• History
• Multi-line Statements
• Declare closures, functions, etc
• Keeps state
REPL
What is CommandBox?
CLI Package

Manager
REPL
Read-Eval

Print-Loop
Integrated

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-Loop
Integrated

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-Loop
Integrated

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-Loop
Integrated

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/commandbox
• Training
• http://ortussolutions.com/services/training
• Professional Support
• http://ortussolutions.com/services/support
Thanks!
Q & A

Weitere ähnliche Inhalte

Was ist angesagt?

Stress Free Deployment - Confoo 2011
Stress Free Deployment  - Confoo 2011Stress Free Deployment  - Confoo 2011
Stress Free Deployment - Confoo 2011
Bachkoutou Toutou
 

Was ist angesagt? (20)

Stress Free Deployment - Confoo 2011
Stress Free Deployment  - Confoo 2011Stress Free Deployment  - Confoo 2011
Stress Free Deployment - Confoo 2011
 
Dev objective2015 lets git together
Dev objective2015 lets git togetherDev objective2015 lets git together
Dev objective2015 lets git together
 
No Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with AnsibleNo Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with Ansible
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Keep Applications Online
Keep Applications OnlineKeep Applications Online
Keep Applications Online
 
Testing Automaton - CFSummit 2016
Testing Automaton - CFSummit 2016Testing Automaton - CFSummit 2016
Testing Automaton - CFSummit 2016
 
Docker
DockerDocker
Docker
 
RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016
 
Continuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as CodeContinuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as Code
 
Implementing your own Google App Engine
Implementing your own Google App Engine Implementing your own Google App Engine
Implementing your own Google App Engine
 
Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case Study
 
CBDW2014 - Down the RabbitMQ hole with ColdFusion
CBDW2014 - Down the RabbitMQ hole with ColdFusionCBDW2014 - Down the RabbitMQ hole with ColdFusion
CBDW2014 - Down the RabbitMQ hole with ColdFusion
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Scaling and Managing Selenium Grid
Scaling and Managing Selenium GridScaling and Managing Selenium Grid
Scaling and Managing Selenium Grid
 
Vagrant and Chef on FOSSASIA 2014
Vagrant and Chef on FOSSASIA 2014Vagrant and Chef on FOSSASIA 2014
Vagrant and Chef on FOSSASIA 2014
 
Test-Driven Infrastructure with Chef
Test-Driven Infrastructure with ChefTest-Driven Infrastructure with Chef
Test-Driven Infrastructure with Chef
 
Ansible & Cumulus Networks - Simplify Network Automation
Ansible & Cumulus Networks - Simplify Network AutomationAnsible & Cumulus Networks - Simplify Network Automation
Ansible & Cumulus Networks - Simplify Network Automation
 
Docker, Atomic Host and Kubernetes.
Docker, Atomic Host and Kubernetes.Docker, Atomic Host and Kubernetes.
Docker, Atomic Host and Kubernetes.
 
Zero Code Multi-Cloud Automation with Ansible and Terraform
Zero Code Multi-Cloud Automation with Ansible and TerraformZero Code Multi-Cloud Automation with Ansible and Terraform
Zero Code Multi-Cloud Automation with Ansible and Terraform
 
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
 

Ähnlich wie Command box

Ähnlich wie Command box (20)

Intro To CommandBox CLI,Package Manager, Server at the Japan CFUG
Intro To CommandBox CLI,Package Manager, Server at the Japan CFUGIntro To CommandBox CLI,Package Manager, Server at the Japan CFUG
Intro To CommandBox CLI,Package Manager, Server at the Japan CFUG
 
ITB2017 - Keynote
ITB2017 - KeynoteITB2017 - Keynote
ITB2017 - Keynote
 
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
 
Command Box ColdFusion Package Manager, Automation
Command Box ColdFusion Package Manager, AutomationCommand Box ColdFusion Package Manager, Automation
Command Box ColdFusion Package Manager, Automation
 
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
 
Brad Wood 5 command box modules you should be using
Brad Wood   5 command box modules you should be usingBrad Wood   5 command box modules you should be using
Brad Wood 5 command box modules you should be using
 
Continuous Integration at Mollie
Continuous Integration at MollieContinuous Integration at Mollie
Continuous Integration at Mollie
 
CommandBox & ForgeBox Package Management
CommandBox & ForgeBox Package ManagementCommandBox & ForgeBox Package Management
CommandBox & ForgeBox Package Management
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovsky
 
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
 
StorageOS, Storage for Containers Shouldn't Be Annoying at Container Camp UK
StorageOS, Storage for Containers Shouldn't Be Annoying at Container Camp UKStorageOS, Storage for Containers Shouldn't Be Annoying at Container Camp UK
StorageOS, Storage for Containers Shouldn't Be Annoying at Container Camp UK
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
InSpec For DevOpsDays Amsterdam 2017
InSpec For DevOpsDays Amsterdam 2017InSpec For DevOpsDays Amsterdam 2017
InSpec For DevOpsDays Amsterdam 2017
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOps
 
ITB2016 - ForgeBox 2 Package Management
ITB2016 - ForgeBox 2 Package ManagementITB2016 - ForgeBox 2 Package Management
ITB2016 - ForgeBox 2 Package Management
 
Securing applications
Securing applicationsSecuring applications
Securing applications
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
 
Securing Legacy CFML Code
Securing Legacy CFML CodeSecuring Legacy CFML Code
Securing Legacy CFML Code
 

Mehr von devObjective

Mehr von devObjective (20)

Lets git together
Lets git togetherLets git together
Lets git together
 
Raspberry Pi a la CFML
Raspberry Pi a la CFMLRaspberry Pi a la CFML
Raspberry Pi a la CFML
 
Effective version control
Effective version controlEffective version control
Effective version control
 
Front end-modernization
Front end-modernizationFront end-modernization
Front end-modernization
 
Using type script to build better apps
Using type script to build better appsUsing type script to build better apps
Using type script to build better apps
 
Csp and http headers
Csp and http headersCsp and http headers
Csp and http headers
 
Who owns Software Security
Who owns Software SecurityWho owns Software Security
Who owns Software Security
 
Naked and afraid Offline mobile
Naked and afraid Offline mobileNaked and afraid Offline mobile
Naked and afraid Offline mobile
 
Web hackingtools 2015
Web hackingtools 2015Web hackingtools 2015
Web hackingtools 2015
 
Node without servers aws-lambda
Node without servers aws-lambdaNode without servers aws-lambda
Node without servers aws-lambda
 
I am-designer
I am-designerI am-designer
I am-designer
 
Garbage First and You!
Garbage First and You!Garbage First and You!
Garbage First and You!
 
Fusion Reactor
Fusion ReactorFusion Reactor
Fusion Reactor
 
Paying off emotional debt
Paying off emotional debtPaying off emotional debt
Paying off emotional debt
 
My SQL Skills Killed the Server
My SQL Skills Killed the ServerMy SQL Skills Killed the Server
My SQL Skills Killed the Server
 
Authentication Control
Authentication ControlAuthentication Control
Authentication Control
 
Multiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mqMultiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mq
 
Preso slidedeck
Preso slidedeckPreso slidedeck
Preso slidedeck
 
Intro to TDD & BDD
Intro to TDD & BDDIntro to TDD & BDD
Intro to TDD & BDD
 
Rethink Async with RXJS
Rethink Async with RXJSRethink Async with RXJS
Rethink Async with RXJS
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Command box

  • 2. 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....
  • 3. AGENDA • How do we work in CF • A better way to work in CF • What is CommandBox • Features • Usage • Roadmap
  • 4. HOW DO WE WORK IN CF? Code% App% Code Code Code Code Code Code Code
  • 7. How we should work! App#Package# Manager# CLI# REPL# Automa6on# OS#
  • 8. We need to learn, study, and apply!
  • 10. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server ScaffoldingForgeBox CFML ColdFusion Automation
  • 11. 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
  • 13. We are POSS • GitHub • https://github.com/Ortus-Solutions/commandbox • Professional Support • Training + Mentoring • Development • Support • Salsa Lessons are Optional Brad Wood
 Salsa King
  • 14. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server ScaffoldingForgeBox CFML ColdFusion Automation
  • 15. Usage - CLI vs Shell box myapp.cfm Shell
  • 16. Usage - OS Execution OS 
 +
 CFML Execute CFML Files box myapp.cfm & Box Scripting: *Unix #!/usr/bin/env box
  • 17. 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
  • 18. Usage - Parameters Named Params box execute file=test.cfm Positional box install coldbox Boolean Flags box coldbox create app —installColdBox Boolean Flags box coldbox create controller —!script Escape Input t,n, ”, ’
  • 19. Usage - History Command History box history REPL History box history type=scriptrepl box history type=tagrepl Clear History box history —clear
  • 20. 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.
  • 21. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server ScaffoldingForgeBox CFML ColdFusion Automation
  • 22. What’s a package? • A folder or zip/tar file that must contain: • box.json • It must be in the root!
  • 23. box.json • Package Descriptor • Declares package metadata • Name • Slug • Version • Author • Dependencies • DevDependencies • Installation Details • Custom Metadata
  • 25. Where do they come from? • ForgeBox • File zip/tar • Directory • Git • SVN • Github • Bitbucket • Custom
  • 26. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server ScaffoldingForgeBox CFML ColdFusion Automation
  • 27. ForgeBox • Cloud package repository • Web GUI • Community driven • 180+ packages • Help us out! • www.forgebox.io
  • 28. Package Commands • forgebox • install • uninstall • update • search • show • types • slugcheck • artifacts • remove, list, clean • package • show, init, clear, set
  • 29. 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
  • 30. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server ScaffoldingForgeBox CFML ColdFusion Automation
  • 31. Read - Eval - Print - Loop • Executes code • SupportTags or CFScript • History • Multi-line Statements • Declare closures, functions, etc • Keeps state REPL
  • 32. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server ScaffoldingForgeBox CFML ColdFusion Automation
  • 33. 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
  • 34. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server ScaffoldingForgeBox CFML ColdFusion Automation
  • 35. Scaffolding • ColdBox Applications • ContentBox Applications • TestBox Integration • Available For Any Framework or Application • Preside CMS
  • 36. 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
  • 37. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server ScaffoldingForgeBox CFML ColdFusion Automation
  • 38. 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
  • 39. # 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
  • 40. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server ScaffoldingForgeBox CFML ColdFusion Automation
  • 41. ColdFusion Extensibility • Commands are CFML • Create custom commands • Register in ForgeBox • DI/AOP Capabilities • Favorite Commands • CommandBox-Chuck-Norris • cfdocs CFML
  • 42. Roadmap Task Runners Adobe CF Engine ForgeBox 2.0 ForgeBox Enterprise Package Endpoints More Automations OS Execution Params
  • 43. 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/commandbox • Training • http://ortussolutions.com/services/training • Professional Support • http://ortussolutions.com/services/support