_____ _ _____ _ _ _
| | _____ _| | ___ | || |_ |_| ___ ___ | |_
| --|| || . ||___|| | || . | | || -_|| _|| _|
|_____||_|_|_||___| |_____||___| _| ||___||___||_|
|___|
Cmd-Object is a little library that is used to turn objects into command line parameters.
Usage
All examples implicitly include cmd-object using:
var CmdObject = require('cmd-object');
Cmd-Object is used by creating a new CmdObject
object with a base command.
This base command is simply a simple executable name that begins the generated
command line.
var javaCmd = CmdObject('java');
From there, command line arguments can be specified.
This is done by specifying a property selector ($()
), which reads a property
of the object passed to generate()
and uses its value for all subsequent
transformations (until another selection occurs or generate()
is called).
javaCmd.$('classpath').join(path.delimiter).wrap().prefix('-cp ')
.$('jar').wrap().prefix('-jar ');
The above example will first take obj.classpath
from the object passed to
generate(obj)
and
- Join the array using
path.delimiter
character - Wrap that string (using the default, double quotes)
- Prefix the quoted classpath string with the
-cp
flag and a space
Then it will proceed to take the obj.jar
value and
- Wrap the value using double quotes
- Prefix it with
-jar
and a space
From there, you can now call generate()
given the parameters, such as
var javaArgs = {
classpath: [
'.',
'./bin',
'./lib/*'
],
jar: './someJar.jar'
};
javaCmd.generate(javaArgs, function(cmdLine){
console.log(cmdLine);
});
The above will output:
java -cp ".:./bin:./lib/*" -jar "./someJar.jar"
Extending
If you'd like to extend the API (and the transformations available for
selections), simply add funtions to CmdObject.API
that accept a
callback(err, transformedString)
function as the last parameter.
Check the source code for examples on extending the API.