Intentions
spices goal is too provide a convenient way to provide command-line tools from a node.js applications.
The goal has been to provide the same kind of behavior as what can be seen in Symfony2's command system.
Setup
Installation
npm install spices
Configuration
myapp/mycommand.js describes a command.
moduleexports =description: 'This command has to do something'{console;};
myapp/commands.js describes all the commands for our module.
myCommand = ;moduleexports =// the name could be anything'myapp:mycommand': myCommand
command.js: now you have to provide a file to actually call to run your commands:
appCommands =commandManager = ;// we could also have directly call// commandManager = require('spices')(appCommands);commandManager;commandManager;
Let the magic happens:
node command.js # provides a list of the available commands node commands.js myapp:mycommand "some extra arguments" -a 1 2 3
Documentation
You don't need to know much more than what is described above but two exceptions.
Promises
spices handles promises. So if your command returns a promise spices will wait for its fulfillment to return.
Arguments
spices uses minimist and what your command receives kept the format minimist provides. What interests you lives inside the '_' of the provided dictionary.